Предмет: Информатика, автор: AlexTarakanova

Дано целочисленный массив из n элементов. Проверить, если массив является симметричным, то в каждой из его половин изменить порядок элементов на обратный. В противном случае его половины поменять местами.

Ответы

Автор ответа: Аноним
1
PascalABC.NET 3.3.5, сборка 1650 от 01.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('n=');
  var a:=ReadArrInteger('Вводите:',n);
  var m:=n div 2;
  if a.Zip(a.Reverse,(p,q)->p=q).All(t->t) then
    a:=(a[:m].Reverse+a[m:].Reverse).ToArray
  else
    a:=a[m:]+a[:m];
  a.Println
end.

Примеры
n= 8
Вводите: 1 2 3 4 4 3 2 1
4 3 2 1 1 2 3 4

n= 8
Вводите: 1 2 3 4 4 3 6 1
4 3 6 1 1 2 3 4
Похожие вопросы
Предмет: Кыргыз тили, автор: erbolhik10
Предмет: История, автор: kutkeevarsen
Предмет: Алгебра, автор: Аноним