Pagini recente » Cod sursa (job #120613) | Cod sursa (job #227396) | Cod sursa (job #1234620) | Cod sursa (job #2494705) | Cod sursa (job #37035)
Cod sursa(job #37035)
var f,g:text;
i,n,a,b,max,l,p:longint;
v:array[1..200{000}] of -10000..10000;
s,t:array[1..200{000}] of longint;
begin
assign(f,'buline.in');
reset(f);
readln(f,n);
for i:=1 to n do
begin
readln(f,a,b);
if b=0 then v[i]:=0-a
else v[i]:=a;
end;
close(f);
s[1]:=v[1];
t[1]:=s[1];
for i:=2 to n do
begin
s[i]:=s[i-1]+v[i];
if s[i]>t[i-1] then t[i]:=s[i]
else t[i]:=t[i-1];
end;
max:=0;
p:=200000;
l:=200000;
for i:=1 to n do
begin
a:=t[i-1]+s[n]-s[i-1];
if a>max then
begin
max:=a;
p:=i;
end
else if (a=max)and(p>i) then p:=i;
end;
assign(g,'buline.out');
rewrite(g);
write(g,max,' ',p,' ');
i:=p+1; b:=1;
a:=v[p];
while (a<>max)and(i<>p) do
begin
a:=a+v[i]; inc(b);
inc(i); if i>n then i:=1;
end;
if a=max then l:=b;
writeln(g,l);
close(g);
end.