Cod sursa(job #672450)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 2 februarie 2012 10:34:20
Problema Subsecventa de suma maxima Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 1 kb
Program p1;
var fi,fo : text;
    i,j,n,j1,j2,ck : longint;
    a,c:array[0..6000000] of longint;
    maxim:longint;

Function max(k,n:longint):longint;
var m,i,m2:longint;
begin
    m:=0; m2:=a[1];
for k:=1 to n do  begin
                    m:=0;
                    for i:=k to n do m:=m+a[i];
                    if m>m2 then m2:=m;
                    end;
    max:=m2;

end;

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];

    for i:=2 to n do c[i]:=max(1,i);
    maxim:=c[1];
    for i:=1 to n do if c[i]>maxim then begin
                                        maxim:=c[i];
                                        j1:=i;
                                        end;
    j2:=j1;  ck:=maxim;
    while ck>0 do begin
                  ck:=ck-a[j2];
                  j2:=j2-1;
                  end;
    j2:=j2+1;
    writeln(fo,maxim,' ',j2,' ',j1);
    close(fi); close(fo);
end.