Вирішу ЄДІ »інформатика

Дан масив, з-дер-жа-щий НЕ-від-ри-ца-тель-ні цілі числа. Ні-про-хо-ді-мо вивести:

- мак-си-маль-ний парний елемент, якщо ко-ли-че-ство парних еле-мен-тов не менше, аніж непарних;

- мак-си-маль-ний непарний елемент, якщо ко-ли-че-ство непарних еле-мен-тів більше, ніж парних.

Наприклад, для мас-си-ва з шести елементів, рав-них со-від-вет-ного-но 4, 6, 12, 17, 3, 8, від-ве-те буде 12 - най-біль-шиї парне число, по-скільки-ку парних чисел в цьому мас-си-ве більше.

Напишіть на одному з язи-ков про-грам-мі-ро-ва-ня про-грам-му для ре-ше-ня цього завдання. Іс-хід-ні дан-ні об'єк-яв-ле-ни так, як по-ка-за-но нижче. За-пре-ща-ет-ся ис-поль-зо-вать змінні, що не опи-сан-ні нижче, але раз-ре-ша ет ся не ви-поль-зо-вать частина з опи-сан них змінних.

DIM A (N) AS INTEGER

DIM I, J, K, M AS INTEGER

a: array [1..N] of integer;

i, j, k, m: integer;

У ка-че-стве від-ве-та Ви не-про-хо-ді-мо при-ве-сти фраг-мент програми, ко-то-рий дол-дружин на-хо-дить-ся на місці трьох крапок. Ви мо-же-ті за-пі-описати ре-ху також на дру-гом мовою про-грам-мі-ро-ва-ня (вкажіть на-зва-ня і ис-поль-зу-е-мую вер-сю мови програмування, наприклад, Free Pascal 2.6). У цьому слу-чаї Ви повинні-ни ис-поль-зо-вать ті ж самі ис-хід-ні дан-ні та змінні, які були пред-ло-же-ни в наведених фрагментах.

Щоб за один про-хід визна-де-лити ко-ли-че-ство парних і непарних еле-мен-тів і со-від-вет-ству-ю-щие їм максимуми, потрібні 5 пе-ре-мен-них (два лічильники, два мак-си-му-ма і індекс), а в усло-вії раз-ре-ше-но ис-поль-зо-вать толь-ко 4. Щоб обой-ти це обмеження, зауважимо, що , по-скільки-ку загальне ко-ли-че-ство еле-мен-тів відомо, можна під-вва-ти-вать ко-ли-че-ство толь-ко в одній групі. Ця ідея ре-а-лі-зо-ва-на в сле-ду-ю-щем фраг-мен-ті на мові Паскаль.

Можливо також двох-про-хід-ве рішення: на пер-вом про-хо-де визна-де-ля-ет-ся ко-ли-че-ство парних і непарних елементів, на вто-ром визна-де-ля -ет-ся мак-си-мум в со-від-вет-ству-ю-щей групі. Ця ідея ре-а-лі-зо-ва-на в сле-ду-ю-щем фраг-мен-ті на ал-го-рит-ми-че-ською мовою.

for i: = 1 to N do begin

if a [i] mod 2 = 0 then begin

Схожі статті