Pagini recente » Cod sursa (job #2099536) | Cod sursa (job #2827925) | Cod sursa (job #2868577) | Cod sursa (job #1440660) | Cod sursa (job #332636)
Cod sursa(job #332636)
uses math;
var t:text;
x:array[0..400000] of longint;
a,b,n,i,j,ma,l,lung,dela,lungl,delal:longint;
begin
assign(t,'buline.in'); reset(t);
readln(t,n);
l:=0; ma:=-555555; lung:=0;
for i:=1 to 2*n-1 do
begin
if i<=n then
begin
read(t,x[i],a);
if a=0 then x[i]:=-x[i];
x[i+n]:=x[i];
end;
//ma:=max(ma+x[i],x[i]);
{ if (x[i]>=ma+x[i]) then begin dela:=i; ma:=x[i]; lung:=1; end
else begin inc(lung); ma:=x[i]+ma; end;
if lung>n then begin ma:=ma-x[dela]; inc(dela); lung:=n; end;
if x[i]>=ma then begin dela:=i; ma:=x[i]; lung:=1; end;}
if ma<=0 then begin lung:=0; ma:=0; dela:=i; end;
ma:=ma+x[i]; inc(lung);
if lung>n then begin ma:=ma-x[dela]; lung:=n; inc(dela); end;
if (ma<=0) then begin dela:=i; lung:=1; ma:=x[i]; end;
if ma>l then begin l:=ma; delal:=dela; lungl:=lung; end;
end;
close(t); assign(t,'buline.out'); rewrite(t);
delal:=delal mod n;
if delal=0 then delal:=1;
{l:=0;
for i:=delal to delal+lungl-1 do
l:=l+x[i]; }
writeln(t,l,' ',delal,' ',lungl);
close(t);
end.