Cod sursa(job #286669)

Utilizator cristinabCristina Brinza cristinab Data 24 martie 2009 00:30:01
Problema Subsecventa de suma maxima Scor 60
Compilator fpc Status done
Runda Arhiva educationala Marime 0.81 kb
var v:array[1..600000] of integer;
    suma_max,inceput,sfarsit,n:longint;
    f,g:text;

procedure citire;
var i:longint;
begin
assign(f,'ssm.in'); reset(f);
readln(f,n);
for i:=1 to n do read(f,v[i]);
close(f);
end;


procedure rezolvare;
var i:longint;
    poz_inceput,suma_c:longint;
begin
assign(g,'ssm.out'); rewrite(g);

suma_max:=v[1];
suma_c:=suma_max;
poz_inceput:=1;
inceput:=1;
sfarsit:=1;

for i:=2 to n do
    begin
    if suma_c<0 then
       begin
       suma_c:=v[i];
       poz_inceput:=i;
       end
    else suma_c:=suma_c+v[i];
    if suma_max<suma_c then
       begin
       suma_max:=suma_c;
       inceput:=poz_inceput;
       sfarsit:=i;
       end
    end;

writeln(g,suma_max,' ',inceput,' ',sfarsit);

close(g);
end;

begin
citire;
rezolvare;
end.