Напишите программу, которая сортирует отдельно элементы массива с чётными и нечётными
Напишите программку, которая сортирует раздельно элементы массива с чётными и нечётными значениями. Все элементы с нечётными значениями необходимо отсортировать по возрастанию, а элементы с чётными значениями по убыванию. При этом элементы каждой из групп (как чётные, так и нечётные) обязаны занимать то же огромное количество позиций в массиве, что и до сортировки.
Входные данные
1-ая строчка содержит размер массива N . Во второй строке через пробел задаются N чисел элементы массива. Гарантируется, что 0 lt; N 100000 .
Выходные данные
Программа обязана вывести все элементы отсортированного массива в одну строку, разделив их пробелами.
//Pascal ABC.NET v3.1 сборка 1219
Var
ar,arOdd,arNotOdd:array of integer;
n,i,j,k1,k2:integer;
begin
readln(n);
setlength(ar,n+1);
k1:=1;
k2:=1;
for i:=1 to n do
begin
readln(ar[i]);
if odd(i) then
begin
setlength(arOdd,k1);
arOdd[k1-1]:=ar[i];
inc(k1);
end
else
begin
setlength(arNotOdd,k2);
arNotOdd[k2-1]:=ar[i];
inc(k2);
end;
end;
sort(arOdd);
sort(arNotOdd);
reverse(arNotOdd);
k1:=0;
k2:=0;
i:=0;
while ilt;gt;n do
begin
inc(i);
if odd(i) then
begin
ar[i]:=arOdd[k1];
inc(k1);
end
else
begin
ar[i]:=arNotOdd[k2];
inc(k2);
end;
write(ar[i],' ');
end;
end.
Пример ввода:
5
1
2
3
4
5
Пример вывода:
1 4 3 2 5
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.