Cod sursa(job #331600)

Utilizator doruletzPetrican Teodor doruletz Data 14 iulie 2009 17:53:02
Problema Buline Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
var buline:array[1..400000]of -10000..10000;
    y:0..1;
    n,i:integer;
    t:text;

function max(a,b:integer):integer;
begin
 if a>b then max:=a else max:=b;
end;


procedure afisare(nn:integer);
var s,suma,ss,sumas:int64;
    li,lf,i:0..400000;
begin
 s:=0;
 suma:=0;
 s:=max(s+buline[1],buline[1]);
 suma:=max(suma,s);
 ss:=s;
 sumas:=suma;
 li:=1;
 lf:=1;
 for i:=2 to nn*2-1 do begin
  s:=max(s+buline[i],buline[i]);
  if s<ss then li:=i+1;
  suma:=max(suma,s);
  if suma>sumas then lf:=i;
  ss:=s;
  sumas:=suma;
 end;
 assign(t,'buline.out'); rewrite(t);
 if li>nn then li:=li-nn;
 writeln(t,suma,' ',li,' ',lf-li+1);
 close(t);
end;

begin
 assign(t,'buline.in'); reset(t);
 readln(t,n);
 for i:=1 to n do begin
  readln(t,buline[i],y);
  if y=0 then buline[i]:=-buline[i];
 end;
 for i:=n+1 to n*2-1 do buline[i]:=buline[i-n];
 close(t);
 afisare(n);
end.