Cod sursa(job #743323)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 3 mai 2012 22:13:59
Problema Subsecventa de suma maxima Scor 55
Compilator fpc Status done
Runda Arhiva educationala Marime 0.83 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 c[i]:=a[i];
                     if c[i]>max then begin max:=c[i]; fina:=i; end;
                     end;
    write(fo,max); poz:=fina;
    while (max<>0)  do begin
                    max:=max-a[poz];
                    poz:=poz-1;
                    end;
    poz:=poz+1;
    if poz<=fina then write(fo,' ',poz,' ',fina)
                 else write(fo,' ',fina,' ',fina);
    close(fi); close(fo);
end.