program events;
Uses Math;
const MAXN =100000;
type elenco= array[1..MAXN] of Int64;
var N, i:Longint;
X, Y : elenco;
numeropresenti, risposta : int64;
Entrate, Uscite : array[0..MAXN] of int64;
Procedure scambia (var a,b: Int64);
var x:Int64;
begin
x:=a;
a:=b;
b:=x;
end;
Procedure ordinamento (estremoi,estremos: Int64; var v : elenco; var u : elenco; ordinato:boolean);
var inf, sup, medio:Int64;
pivot :Int64;
begin
inf:=estremoi;
sup:=estremos;
medio:= (estremoi+estremos) div 2;
pivot:=v[medio];
repeat
if (ordinato) then
begin
while (v[inf]<pivot) do inf:=inf+1;
while (v[sup]>pivot) do sup:=sup-1;
end;
if inf<=sup then
begin
scambia(v[inf],v[sup]);
scambia(u[inf],u[sup]);
inf:=inf+1;
sup:=sup-1;
end;
until inf>sup;
if (estremoi<sup) then ordinamento(estremoi,sup,v,u, ordinato);
if (inf<estremos) then ordinamento(inf,estremos,v, u, ordinato);
end;
begin
readln(N);
for i:=1 to N do readln(X[i],Y[i]);
ordinamento (1,N,Y,X, true);
numeropresenti:=0; risposta:=0; Y[0]:=-1;
for i:=0 to N do begin Entrate[i]:=0; Uscite[i]:=0; end;
writeln(X[3]);
for i:=1 to N do
begin
if Y[i]=Y[i-1] then
begin
if X[i]=1 then Entrate[i-1] :=Entrate[i-1]+1
else if X[i]=-1 then Uscite[i-1] :=Uscite[i-1]-1;
end
else
begin
if X[i]=1 then Entrate[i] :=Entrate[i]+1
else if X[i]=-1 then Uscite[i] :=Uscite[i]-1;
end;
end;
for i:=0 to N do write(entrate[i],' ');writeln;
for i:=0 to N do write(uscite[i],' ');writeln;
for i:= 0 to N do
begin
numeropresenti:=numeropresenti+Entrate[i]+Uscite[i];
writeln(numeropresenti);
risposta:=max(risposta, numeropresenti);
end;
writeln (risposta);
end.
cHJvZ3JhbSBldmVudHM7ClVzZXMgTWF0aDsKY29uc3QgTUFYTiA9MTAwMDAwOwp0eXBlIGVsZW5jbz0gYXJyYXlbMS4uTUFYTl0gb2YgSW50NjQ7CnZhciBOLCBpOkxvbmdpbnQ7CiAgICBYLCBZICA6IGVsZW5jbzsKICAgIG51bWVyb3ByZXNlbnRpLCByaXNwb3N0YSA6IGludDY0OwogICAgRW50cmF0ZSwgVXNjaXRlIDogYXJyYXlbMC4uTUFYTl0gb2YgaW50NjQ7CiAgICAKUHJvY2VkdXJlIHNjYW1iaWEgKHZhciBhLGI6IEludDY0KTsKdmFyIHg6SW50NjQ7CmJlZ2luCiAgIHg6PWE7CiAgIGE6PWI7CiAgIGI6PXg7CmVuZDsgIApQcm9jZWR1cmUgb3JkaW5hbWVudG8gKGVzdHJlbW9pLGVzdHJlbW9zOiBJbnQ2NDsgdmFyIHYgOiBlbGVuY287IHZhciB1IDogZWxlbmNvOyBvcmRpbmF0bzpib29sZWFuKTsKdmFyIGluZiwgc3VwLCBtZWRpbzpJbnQ2NDsKICAgIHBpdm90IDpJbnQ2NDsKYmVnaW4KICAgIGluZjo9ZXN0cmVtb2k7CiAgICBzdXA6PWVzdHJlbW9zOwogICAgbWVkaW86PSAoZXN0cmVtb2krZXN0cmVtb3MpIGRpdiAyOwogICAgcGl2b3Q6PXZbbWVkaW9dOwogICAgcmVwZWF0CiAgICAgIGlmIChvcmRpbmF0bykgdGhlbgogICAgICAgICBiZWdpbgogICAgICAgICAgICB3aGlsZSAodltpbmZdPHBpdm90KSBkbyAgaW5mOj1pbmYrMTsKICAgICAgICAgICAgd2hpbGUgKHZbc3VwXT5waXZvdCkgZG8gIHN1cDo9c3VwLTE7CiAgICAgICAgIGVuZDsKICAgICAgaWYgaW5mPD1zdXAgdGhlbgogICAgICAgYmVnaW4KICAgICAgICAgc2NhbWJpYSh2W2luZl0sdltzdXBdKTsKICAgICAgICAgc2NhbWJpYSh1W2luZl0sdVtzdXBdKTsKICAgICAgICAgaW5mOj1pbmYrMTsKICAgICAgICAgc3VwOj1zdXAtMTsKICAgICAgIGVuZDsKICAgIHVudGlsIGluZj5zdXA7CiAgICBpZiAoZXN0cmVtb2k8c3VwKSB0aGVuIG9yZGluYW1lbnRvKGVzdHJlbW9pLHN1cCx2LHUsIG9yZGluYXRvKTsKICAgIGlmIChpbmY8ZXN0cmVtb3MpIHRoZW4gb3JkaW5hbWVudG8oaW5mLGVzdHJlbW9zLHYsIHUsIG9yZGluYXRvKTsKZW5kOwoKYmVnaW4KICAgICAgICByZWFkbG4oTik7CiAgICAgICAgZm9yIGk6PTEgdG8gTiBkbyByZWFkbG4oWFtpXSxZW2ldKTsKCW9yZGluYW1lbnRvICgxLE4sWSxYLCB0cnVlKTsKCW51bWVyb3ByZXNlbnRpOj0wOyByaXNwb3N0YTo9MDsgWVswXTo9LTE7IAoJZm9yIGk6PTAgdG8gTiBkbyBiZWdpbiBFbnRyYXRlW2ldOj0wOyBVc2NpdGVbaV06PTA7IGVuZDsKCXdyaXRlbG4oWFszXSk7Cglmb3IgaTo9MSB0byBOIGRvIAoJICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgaWYgWVtpXT1ZW2ktMV0gdGhlbiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgWFtpXT0xIHRoZW4gRW50cmF0ZVtpLTFdIDo9RW50cmF0ZVtpLTFdKzEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlICBpZiBYW2ldPS0xIHRoZW4gVXNjaXRlW2ktMV0gOj1Vc2NpdGVbaS0xXS0xOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBYW2ldPTEgdGhlbiBFbnRyYXRlW2ldIDo9RW50cmF0ZVtpXSsxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlICBpZiBYW2ldPS0xIHRoZW4gVXNjaXRlW2ldIDo9VXNjaXRlW2ldLTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgICAgICAgICAgIGVuZDsKICAgICAgICBmb3IgaTo9MCB0byBOIGRvIHdyaXRlKGVudHJhdGVbaV0sJyAnKTt3cml0ZWxuOwogICAgICAgIGZvciBpOj0wIHRvIE4gZG8gd3JpdGUodXNjaXRlW2ldLCcgJyk7d3JpdGVsbjsKICAgICAgICBmb3IgaTo9IDAgdG8gTiBkbyAgCiAgICAgICAgICAgICAgICAgICBiZWdpbiAKICAgICAgICAgICAgICAgICAgICAgICBudW1lcm9wcmVzZW50aTo9bnVtZXJvcHJlc2VudGkrRW50cmF0ZVtpXStVc2NpdGVbaV07CiAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVsbihudW1lcm9wcmVzZW50aSk7CiAgICAgICAgICAgICAgICAgICAgICAgcmlzcG9zdGE6PW1heChyaXNwb3N0YSwgbnVtZXJvcHJlc2VudGkpOwogICAgICAgICAgICAgICAgICAgZW5kOyAgIAogICAgICAgd3JpdGVsbiAocmlzcG9zdGEpOyAgICAgICAgICAKZW5kLg==