Pagini recente » Cod sursa (job #2162771) | Cod sursa (job #2027755) | Cod sursa (job #1102771) | Cod sursa (job #1758885) | Cod sursa (job #331580)
Cod sursa(job #331580)
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.