Cod sursa(job #743322)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 3 mai 2012 22:07:29
Problema Subsecventa de suma maxima Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.68 kb
Program p1;
var fi,fo : text;
    i,n,fina,poz,max : longint;
    a,c:array[0..600005] of longint;

begin
    assign(fi,'ssm.in'); reset(fi); readln(fi,n);
    assign(fo,'ssm.out'); rewrite(fo);

    for i:=1 to n do read(fi,a[i]);
    c[1]:=a[1]; poz:=1; fina:=1; max:=a[1];

    for i:=2 to n do begin
                     if c[i-1]+a[i]>=a[i] then c[i]:=c[i-1]+a[i]
                                         else begin c[i]:=a[i]; poz:=i; end;
                     if c[i]>max then begin max:=c[i]; fina:=i; end;
                     end;
    if poz<=fina then write(fo,max,' ',poz,' ',fina)
                 else write(fo,max,' ',fina,' ',fina);
    close(fi); close(fo);
end.