Cod sursa(job #481894)

Utilizator 05_YohnE1 La5c01 05_Yohn Data 1 septembrie 2010 22:03:16
Problema Subsecventa de suma maxima Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.78 kb
var n,i,min,max,pozmin,pozmaxs,pozmaxd:longint;
    v:array[1..6000000]of longint;
    suma:array[0..6000000]of longint;
    buf:array[1..1 shl 17]of char;
begin
assign(input,'ssm.in');reset(input);
assign(output,'ssm.out');rewrite(output);
settextbuf(input,buf);
read(n);
for i:=1 to n do read(v[i]);
suma[0]:=0;
max:=-2000000000;
min:=0; pozmin:=0;
for i:=1 to n do begin
    suma[i]:=suma[i-1]+v[i];
    if suma[i]-min>max then begin
                       max:=suma[i]-min;
                       pozmaxs:=pozmin+1;
                       pozmaxd:=i;
                       end;
    if suma[i]<min then begin
                        min:=suma[i];
                        pozmin:=i;
                        end;
end;
write(max,' ',pozmaxs,' ',pozmaxd);
close(output);
end.