// PascalABC.NET 3.1, сборка 1256 от 21.06.2016
begin
var n:=30;
var a:=ArrRandom(n,-99,99); a.Println;
var imax:=a.IndexMax;
if imax=0 then a:=a.SortedDescending.ToArray
else
if imax=n-1 then a:=a.Sorted.ToArray
else a:=(a[:imax].Sorted).Concat(a[imax:].SortedDescending).ToArray;
a.Println
end.
Тестовое решение
19 -20 -6 31 -92 86 17 -58 6 2 -93 70 -36 -10 22 99 26 13 76 -12 -77 8 3 19 47 30 -88 50 32 -25
-93 -92 -58 -36 -20 -10 -6 2 6 17 19 22 31 70 86 99 76 50 47 32 30 26 19 13 8 3 -12 -25 -77 -88