#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define MOD 1000000009
#define INF 1000000019
#define INFL 1000000000000000099LL
#define POT (1<<20)
ll a,b,c,d,t,n,m,l,q,k,ak,ans;
vector<pair<ll,ll>>v;
set<pair<ll,ll>>s;
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);
cin>>n;
for(ll i=0;i<n;i++){
cin>>a>>b;
v.pb({b,a});
}
sort(v.begin(),v.end());
reverse(v.begin(),v.end());
s.insert({-INFL,-INFL});
s.insert({INFL,-INFL});
for(ll i=0;i<n;i++){
pair<ll,ll>p1=*s.lower_bound({v[i].ss,-INFL}),p2=*--s.lower_bound({v[i].ss,INFL});
if(p1.ss-v[i].ff>=abs(p1.ff-v[i].ss) || p2.ss-v[i].ff>=abs(p2.ff-v[i].ss)){
continue;
}
if(p2.ss==v[i].ff)s.erase(s.lower_bound({v[i].ss,-INFL}));
ans++;
s.insert({v[i].ss,v[i].ff});
}
cout<<ans;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |