Cod sursa(job #294159)

Utilizator BOgduBarna Bogdan BOgdu Data 2 aprilie 2009 12:49:23
Problema Subsecventa de suma maxima Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.09 kb
{secventa dintr`un sir cu suma maxima}
var a:array[1..6000000] of longint;
        n,suma,smax,st,poz,lg,sf,i:longint;
        f,g:text;
procedure citire;
        begin
        assign(f,'ssm.in');
        reset(f);
        readln(f,n);
        for i:=1 to n do
                read(f,a[i]);
        close(f);
        end;
BEGIN
citire;
assign(g,'ssm.out');
rewrite(g);

suma:=a[1];
smax:=suma;
st:=1;
lg:=1;
poz:=1;

for i:=2 to n do
        BEGIN
                if suma<0 then
                                begin
                                        suma:=a[i];
                                        st:=i;
                                end
                          else suma:=suma+a[i];
                if smax<suma then
                                begin
                                        smax:=suma;
                                        poz:=st;
                                        lg:=i-st+1;
                                        sf:=poz+lg-1;
                                end;
        END;
writeln(g,smax,' ',poz,' ',sf);
close(g);
end.