Cod sursa(job #671025)

Utilizator pongraczlajosLajos Pongracz pongraczlajos Data 30 ianuarie 2012 16:37:21
Problema Subsecventa de suma maxima Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.68 kb
var s:array of longint;
    a,n,i,OptSum,min,ind,eleje,vege:longint;
    f:text;

begin
assign(f,'ssm.in');
reset(f);
readln(f,n);
SetLength(s,n+1);
{ ... S[i] jeloli: a sorozat osszeget 1..i-ig ... }
s[0]:=0;
for i:=1 to n do begin
 read(f,a);
 s[i]:=s[i-1]+a;
end;
close(f);

{ ... OptSum = max(S[i]-S[j]) => OptSum = S[i]-min(S[j]), ahol j<i ... }
OptSum:=-MAXLONGINT;
min:=0; ind:=0; eleje:=0; vege:=0;
for i:=1 to n do begin
 if (OptSum<s[i]-min) then begin
  OptSum:=s[i]-min;
  eleje:=ind+1;
  vege:=i;
 end;
 if (s[i]<min) then begin
  min:=s[i];
  ind:=i;
 end;
end;

assign(f,'ssm.out');
rewrite(f);
write(f,OptSum,' ',eleje,' ',vege);
close(f);
end.