Cod sursa(job #503241)

Utilizator SpiderManSimoiu Robert SpiderMan Data 22 noiembrie 2010 09:49:00
Problema Subsecventa de suma maxima Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 0.83 kb
program secv;
var
    f,g:text;
    v,s:array[0..6000000] of longint;
    max,sum,i,j,n,i1,i2,st:longint;

begin
    assign(f,'ssm.in');reset(f);
    assign(g,'ssm.out');rewrite(g);
    readln(f,n);
    for i:=1 to n do
        begin
            read(f,v[i]);
            s[i]:=s[i-1]+v[i];
        end;

    i1:=1;
    i2:=1;
    st:=1;
    sum:=s[1];
    max:=sum;
    for i:=2 to n do
        begin
            sum:=sum+v[i];
            if sum<s[i]-s[i-1] then
                begin
                    sum:=s[i]-s[i-1];
                    st:=i;
                end;
            if sum>max then
                begin
                    max:=sum;
                    i1:=st;
                    i2:=i;
                end;
        end;
    writeln(g,max, ' ', i1, ' ', i2);
    close(f);
    close(g);
end.