Code
const n=10;
type m=array [1..n] of integer;
function minim(t:m):integer;
var i,min:integer;
begin
min:=t[1];
for i:=2 to n do
if min>t[i] then min:=t[i];
minim:=min;
end;
procedure asdf(var t:m);
var i,j,cur,icur,max,imax:integer; p:boolean;
begin
max:=0;
for i:=1 to n-1 do
if (t[i]=t[i+1]) and (t[i]<0) then
begin
if p then begin icur:=i;p:=false end;
cur:=cur+1
end
else
begin
if max<cur then begin max:=cur; imax:=icur end;
cur:=0;
p:=true;
end;
j:=minim(t);
for i:= imax to imax+max {mb -1 nado} do t[i]:=j
end;
что-то как-то так=) Тока тип массива надо отдельно указать, чтобы и min и вторая проца работала... (кстати 2 неплохо бы было переименовать, а то сейчас это набор букв) не тестил целиком, ибо оставшуюся прогу писать лень...