Pascal Напишите программу, которая сортирует первую половину массива по возрастанию, а...

0 голосов
205 просмотров

Pascal
Напишите программу, которая сортирует первую половину массива по возрастанию, а вторую – по убыванию. При этом элементы из первой половины не должны перемещаться во вторую и наоборот.

Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 и N – чётное число.

Выходные данные
Программа должна вывести в одной строке элементы все массива, отсортированного нужным образом, разделив их пробелами.

Примеры
входные данные
6
3 2 1 4 5 6
выходные данные
1 2 3 6 5 4

Нельзя использовать тип Boolean


Информатика (92 баллов) | 205 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadlnInteger;
  var a:=ReadArrInteger(n);
  var k:=n div 2;
  a:=(a[:k].OrderBy(t->t)+a[k:].OrderByDescending(t->t)).ToArray;
  a.Println
end.

Пример
6
3 2 1 4 5 6
1 2 3 6 5 4
(150k баллов)