Содержание верного ответа
(допускаются иные формулировки ответа, не искажающие его смысла)
Задача решается в два прохода: на первом проходе определяются минимум и максимум, после этого вычисляется их среднее, и на втором проходе производится корректировка и вывод элементов.
Возможно решение в три прохода, когда на втором проходе выполняется только замена значений, а на третьем – вывод.
Пример правильной программы на языке Паскаль
m := 15001; k := 0;
for i:=1 to N do begin
if (a[i] mod 2 = 1) and (a[i] < m) then m := a[i];
if (a[i] mod 2 = 1) and (a[i] > k) then k := a[i];
end;
if m > 15000 then m := 0;
m := (m+k) div 2;
for i:=1 to N do begin
if (a[i] mod 2 = 0) and (a[i] > m) then
a[i] := a[i] – m;
writeln(a[i])
end;
При использовании языка Python для нахождения минимума и максимума можно применить функции min и max. При этом обязательно нужно использовать параметр default (доступен начиная с версии Python 3.4) или другим способом обеспечить обработку ситуации, когда в массиве нет нечётных элементов.
Пример правильной программы на языке Python
m = min((i for i in a if i%2 == 1), default = 0)
k = max((i for i in a if i%2 == 1), default = 0)
m = (m+k)
for i in range(0,N):
if a[i]%2 == 0 and a[i] > m:
a[i] -= m
print(a[i])
Использовать описанную возможность не обязательно, на языке Python допустимо описывать развёрнутый алгоритм решения, аналогичный приведённой выше программе на языке Паскаль.
Указания по оцениванию
В программе допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора.
Не считается ошибкой и не приводит к снижению оценки использование для определения среднего значения обычной операции деления вместо деления нацело (в тех языках, где эти операции различаются).
Эффективность не имеет значения и не оценивается.
Допускается запись программы на языке, не входящем в список языков из условия. В этом случае должны использоваться переменные, аналогичные описанным в условии. Если выбранный язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на языках, использованных в задании. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования, при этом количество переменных и их идентификаторы должны соответствовать условию задачи.
Допускается изменение указанного в условии формата вывода, например, вывод всех элементов массива в одну строку.