Pascal
Напишите программу, которая сортирует первую половину массива по возрастанию, а вторую – по убыванию. При этом элементы из первой половины не должны перемещаться во вторую и наоборот.
Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 и N – чётное число.
Выходные данные
Программа должна вывести в одной строке элементы все массива, отсортированного нужным образом, разделив их пробелами.
Примеры
входные данные
6
3 2 1 4 5 6
выходные данные
1 2 3 6 5 4
Нельзя использовать тип Boolean
Ответы
Ответ дал:
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
Внимание! Если программа не работает, обновите версию!
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
Вас заинтересует
1 год назад
1 год назад
2 года назад
2 года назад
7 лет назад
7 лет назад
8 лет назад