// PascalABC.NET 3.2, сборка 1437 от 03.05.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; var t:=a.Partition((x,i)->i.IsEven); var s:=t[0].Interleave(t[1].OrderByDescending(x->x)); if a.Length.IsOdd then a:=s.ToArray+Arr(a.Last) else a:=s.ToArray; a.Println end.