Cod sursa(job #1101518)
| Utilizator | Data | 8 februarie 2014 17:07:49 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 60 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
program subsecventa_1;
var a:array[0..7000000] of longint;
n,best,min,l,r,i,s:longint;
begin
assign(input,'ssm.in'); reset(input);
assign(output,'ssm.out'); rewrite(output);
readln(n);
for i:=1 to n do read(a[i]);
best:=-1 shl 30; min:=0;
s:=0; l:=1; r:=1;
for i:=1 to n do begin
if s<min then begin min:=s; l:=i; end;
if s+a[i]-min>best then begin
best:=s+a[i]-min;
r:=i;
end;
s:=s+a[i];
end;
write(best,' ',l,' ',r);
close(output);
end.
