type arr = array[1..10000] of real; var n : integer; a : arr; aver : real; {подпрограмма - ввод массива} procedure read_array(var a : arr; n : integer); var i : integer; begin for i := 1 to n do read(a[i]); end; {подпрограмма - поиск среднего арифметического в массиве} function get_average_value(var a : arr; n : integer) : real; var i : integer; sum : real; begin for i := 1 to n do sum := sum + a[i]; get_average_value := sum / n; end; {подпрограмма - замена значений элементов, имеющие индекс c i по j включительно на value} procedure set_value(var a : arr; i : integer; j : integer; value : real); var k : integer; begin for k := i to j do a[k] := value; end; {подпрограмма - вывод массива} procedure print_array(var a : arr; n : integer); var i : integer; begin for i := 1 to n do write(a[i], ' '); end; begin read(n); read_array(a, n); aver := get_average_value(a, n); if (aver > 0) then set_value(a, 1, n div 2, aver) else set_value(a, n div 2 + 1, n, aver); print_array(a, n); end.