Cod sursa(job #588664)

Utilizator ScriamTertiuc Afanasie Scriam Data 8 mai 2011 23:48:11
Problema Subsecventa de suma maxima Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.86 kb
Program p1;
var s : array[0..6000000] of longint;
    n,a,imin,imax,smin,smax,imin1 : longint;
    buf : array[1..10001] of byte;

Function max(a,b : longint) : longint;
begin
if a>b then max:=a else max:=b;
end;


Procedure citire;
var fin : text;
    i : longint;
begin
assign(fin,'ssm.in');
reset(fin);
settextbuf(fin,buf);
readln(fin,n);
for i:=0 to n do s[i]:=0;
for i:=1 to n do
begin
read(fin,a);
s[i]:=s[i-1]+a;
end;
close(fin);
end;


Procedure find;
var i : longint;
    fout : text;
begin
smin:=Maxint;
smax:=-Maxint;

for i:=1 to n do
begin
if (i<>imin1) and ((s[i]-smin)>smax) then begin smax:=(s[i]-s[imin1]); imax:=i; imin:=imin1; end;
if s[i]<smin then begin imin1:=i; smin:=s[i];   end;
end;
assign(fout,'ssm.out');
rewrite(fout);
writeln(fout,smax,' ',imin+1,' ',imax);
close(fout);
end;

begin
citire;
find;
end.