Cod sursa(job #1198954)

Utilizator SwampiPasca Marius Swampi Data 17 iunie 2014 18:45:58
Problema Subsecventa de suma maxima Scor 60
Compilator fpc Status done
Runda Arhiva educationala Marime 0.67 kb
type vector=array[0..6000000] of longint;
var min,s,uz:vector;
    i,j,ma,max,x,n :longint;
    fin,fout:text;
begin
assign(fin,'ssm.in');
assign(fout,'ssm.out');
reset(fin);
rewrite(fout);
read(fin,n);
for i:=1 to n do
    begin
    read(fin,x);
    s[i]:=s[i-1]+x;
    if min[i-1]>s[i] then
       min[i]:=s[i]
       else
       min[i]:=min[i-1];
    end;
for i:=1 to n do
    begin
    uz[i]:=uz[i-1];

    min[i]:=s[i]-min[i];
    if min[i]=0 then
       uz[i]:=i;
    if min[i]>max then
       begin
       ma:=i;
       max:=min[i];
       end;
    end;
max:=s[ma]-s[uz[ma]];
write(fout,max,' ',uz[ma]+1,' ',ma);
close(fin);
close(fout);
end.