// PascalABC.NET 3.0, сборка 1144 от 16.01.2016
begin
var n:=ReadInteger('n=');
var a:=ArrRandom(n,-50,50);
Writeln('Исходный массив'); a.Println;
var se:=a.Where(x->x mod 3=0);
if se.Count=0 then
Writeln('В массиве нет элементов, кратных трем')
else begin
var b:=se.Max;
var i:=0;
while a[i]<>b do Inc(i);
if i=n-1 then Writeln('Максимальный элемент - последний')
else begin
Writeln('Результирующий массив');
a[i+1]:=abs(a.Where(x->x<0).Sum); a.Println<br> end
end
end.
Тестовое решение:
n= 15
Исходный массив
-24 -38 15 -33 -40 -18 21 34 20 49 -19 29 29 38 -41
Результирующий массив
-24 -38 15 -33 -40 -18 21 213 20 49 -19 29 29 38 -41