Cod sursa(job #331580)

Utilizator doruletzPetrican Teodor doruletz Data 14 iulie 2009 16:37:01
Problema Buline Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.02 kb
var buline:array[1..200000]of -10000..10000;
    x:0..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 scrie(nn:integer);
var j,jj,jjj:integer;
    boo:boolean;
    s,suma,ss:int64;
    u:text;
    leng:longint;
begin
 jj:=1;
 boo:=true;
 leng:=1;
 j:=1;
 suma:=0;
 s:=0;             ss:=0;
 while (j<jj)or(boo=true) do begin
  if j>nn then begin j:=1; boo:=false; end;
  s:=max(s+buline[j],buline[j]);
  suma:=max(suma,s);
  if (s<>ss)and(suma=s)then jjj:=j;
  if (s=buline[j])and(suma=s) then begin jj:=j; end;
  inc(j);
  ss:=s;
 end;
 assign(u,'buline.out'); rewrite(u);
 if jj<=jjj then leng:=jjj-jj+1
            else begin jjj:=jjj+nn; leng:=jjj-jj+1; end;
 writeln(u,suma,' ',jj,' ',leng);
 close(u);
end;





begin
 assign(t,'buline.in'); reset(t);
 readln(t,n);
 for i:=1 to n do begin
  readln(t,x,y);
  if y=1 then buline[i]:=x else buline[i]:=-x;
 end;
 close(t);
 scrie(n);
end.