var
a: array [1 .. n] of integer;
.. .m := a[1];
for i := 1 to n do
begin
if (a[i] < 0)c := i;
if (a[i] > m)begin m := a[i];
n := i;
end;
end;
// теперь в переменной n храниться номер максимального элемента, в c - номер последнего отрицательного числа, а в m - максимальное число (хотя оно как я виже по условию задачи не нужно)
a[c - 1] := n;
// записываем номер наибольшего элемента перед последним отрицательным