program events;
Uses Math;
const MAXN =100000;
type elenco= array[1..MAXN] of Int64;
var N, i, evento:Longint;
X, Y : elenco;
numeropresenti, risposta, orauscita : 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; orauscita:=-1;
for i:=1 to N do
begin
if Y[i]<>orauscita then
begin
if X[i]=1 then numeropresenti:=numeropresenti +1
else numeropresenti:=numeropresenti -1;
risposta:=max(risposta, numeropresenti) ;
orauscita:=Y[i]; evento:=X[i];
end
else
if Y[i]=orauscita then
begin
if (evento=1) and (X[i]=-1) then begin numeropresenti:=numeropresenti - 1; risposta:=risposta-1; end;
if (evento=-1) and (X[i]=1) then numeropresenti:=numeropresenti + 1;
if (evento=1) and (X[i]=1) then numeropresenti:=numeropresenti + 1;
if (evento=-1) and (X[i]=-1) then numeropresenti:=numeropresenti - 1;
risposta:=max(risposta, numeropresenti) ;
orauscita:=Y[i]; evento:=X[i];
end;
end;
writeln (risposta);
end.
cHJvZ3JhbSBldmVudHM7ClVzZXMgTWF0aDsKY29uc3QgTUFYTiA9MTAwMDAwOwp0eXBlIGVsZW5jbz0gYXJyYXlbMS4uTUFYTl0gb2YgSW50NjQ7CnZhciBOLCBpLCBldmVudG86TG9uZ2ludDsKICAgIFgsIFkgOiBlbGVuY287CiAgICBudW1lcm9wcmVzZW50aSwgcmlzcG9zdGEsIG9yYXVzY2l0YSA6IGludDY0OwogICAgClByb2NlZHVyZSBzY2FtYmlhICh2YXIgYSxiOiBJbnQ2NCk7CnZhciB4OkludDY0OwpiZWdpbgogICB4Oj1hOwogICBhOj1iOwogICBiOj14OwplbmQ7ICAKUHJvY2VkdXJlIG9yZGluYW1lbnRvIChlc3RyZW1vaSxlc3RyZW1vczogSW50NjQ7IHZhciB2IDogZWxlbmNvOyB2YXIgdSA6IGVsZW5jbzsgb3JkaW5hdG86Ym9vbGVhbik7CnZhciBpbmYsIHN1cCwgbWVkaW86SW50NjQ7CiAgICBwaXZvdCA6SW50NjQ7CmJlZ2luCiAgICBpbmY6PWVzdHJlbW9pOwogICAgc3VwOj1lc3RyZW1vczsKICAgIG1lZGlvOj0gKGVzdHJlbW9pK2VzdHJlbW9zKSBkaXYgMjsKICAgIHBpdm90Oj12W21lZGlvXTsKICAgIHJlcGVhdAogICAgICBpZiAob3JkaW5hdG8pIHRoZW4KICAgICAgICAgYmVnaW4KICAgICAgICAgICAgd2hpbGUgKHZbaW5mXTxwaXZvdCkgZG8gIGluZjo9aW5mKzE7CiAgICAgICAgICAgIHdoaWxlICh2W3N1cF0+cGl2b3QpIGRvICBzdXA6PXN1cC0xOwogICAgICAgICBlbmQ7CiAgICAgIGlmIGluZjw9c3VwIHRoZW4KICAgICAgIGJlZ2luCiAgICAgICAgIHNjYW1iaWEodltpbmZdLHZbc3VwXSk7CiAgICAgICAgIHNjYW1iaWEodVtpbmZdLHVbc3VwXSk7CiAgICAgICAgIGluZjo9aW5mKzE7CiAgICAgICAgIHN1cDo9c3VwLTE7CiAgICAgICBlbmQ7CiAgICB1bnRpbCBpbmY+c3VwOwogICAgaWYgKGVzdHJlbW9pPHN1cCkgdGhlbiBvcmRpbmFtZW50byhlc3RyZW1vaSxzdXAsdix1LCBvcmRpbmF0byk7CiAgICBpZiAoaW5mPGVzdHJlbW9zKSB0aGVuIG9yZGluYW1lbnRvKGluZixlc3RyZW1vcyx2LCB1LCBvcmRpbmF0byk7CmVuZDsKCmJlZ2luCiAgICByZWFkbG4oTik7CiAgICBmb3IgaTo9MSB0byBOIGRvIHJlYWRsbihYW2ldLFlbaV0pOwoJb3JkaW5hbWVudG8gKDEsTixZLFgsIHRydWUpOwoJbnVtZXJvcHJlc2VudGk6PTA7IHJpc3Bvc3RhOj0wOyBvcmF1c2NpdGE6PS0xOwoJZm9yIGk6PTEgdG8gTiBkbyAKCSAgICAgICAgYmVnaW4KCSAgICAgICAgICAgaWYgWVtpXTw+b3JhdXNjaXRhIHRoZW4KCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBYW2ldPTEgdGhlbiBudW1lcm9wcmVzZW50aTo9bnVtZXJvcHJlc2VudGkgKzEKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBudW1lcm9wcmVzZW50aTo9bnVtZXJvcHJlc2VudGkgLTE7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc3Bvc3RhOj1tYXgocmlzcG9zdGEsIG51bWVyb3ByZXNlbnRpKSA7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yYXVzY2l0YTo9WVtpXTsgZXZlbnRvOj1YW2ldOwoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgWVtpXT1vcmF1c2NpdGEgdGhlbiAKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudG89MSkgYW5kIChYW2ldPS0xKSB0aGVuIGJlZ2luIG51bWVyb3ByZXNlbnRpOj1udW1lcm9wcmVzZW50aSAtIDE7IHJpc3Bvc3RhOj1yaXNwb3N0YS0xOyBlbmQ7IAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRvPS0xKSBhbmQgKFhbaV09MSkgdGhlbiBudW1lcm9wcmVzZW50aTo9bnVtZXJvcHJlc2VudGkgKyAxOwoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRvPTEpIGFuZCAoWFtpXT0xKSB0aGVuIG51bWVyb3ByZXNlbnRpOj1udW1lcm9wcmVzZW50aSArIDE7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudG89LTEpIGFuZCAoWFtpXT0tMSkgdGhlbiBudW1lcm9wcmVzZW50aTo9bnVtZXJvcHJlc2VudGkgLSAxOyAKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzcG9zdGE6PW1heChyaXNwb3N0YSwgbnVtZXJvcHJlc2VudGkpIDsKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JhdXNjaXRhOj1ZW2ldOyBldmVudG86PVhbaV07CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7CgkgICAgIGVuZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgl3cml0ZWxuIChyaXNwb3N0YSk7ICAgICAKZW5kLg==