Cod sursa(job #686284)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 21 februarie 2012 15:58:02
Problema Subsecventa de suma maxima Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.73 kb
var v:array [1..6000000] of longint;
    i, min, a, b, x, y, smax, n, aa:longint;
    f, g:text;
    buf1, buf2:array [1.. 1 shl 17] of char;

begin
assign (f, 'ssm.in'); settextbuf (f, buf1); reset (f);
assign (g, 'ssm.out'); settextbuf (g, buf2); rewrite (g);

read (f, n);

read (f, v[1]); x:=v[1]; b:=1; smax:=v[1];

if v[1]>0 then begin min :=0; aa:=1; a:=1; end
          else begin min := v[1]; aa:=2; a:=2; end;

for i := 2 to n do
  begin
  read (f, v[i]);
  y:=x+v[i];
  if y-min > smax then
    begin
    smax:= y-min;
    a:=aa;
    b:=i;
    end;

  if y < min then
    begin
    min:=y;
    aa:=i+1;
    end;

  x:=y;
  end;

writeln (g, smax, ' ',a , ' ', b);

close (f); close (g);
end.