Pagini recente » Cod sursa (job #1403910) | Cod sursa (job #551596) | Cod sursa (job #905400) | Cod sursa (job #2966311) | Cod sursa (job #331604)
Cod sursa(job #331604)
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
if (i<li+nn) then 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;
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.