#include <bits/stdc++.h>
#define int long long
using namespace std;
vector<pair<int, int> > vec;
unordered_set<int> s;
void upd(int a, int b)
{
for (int i=a; i<=2000000000; i+=i&(-i))
for (int j=b; j<=2000000000; j+=j&(-j))
s.insert(i*2000000001+j);
}
int qry(int a, int b)
{
for (int i=a; i; i-=i&(-i))
for (int j=b; j; j-=j&(-j))
if (s.find(i*2000000001+j)!=s.end())
return 1;
return 0;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, cnt=0;
cin >> n;
for (int i=0; i<n; i++)
{
int x, y;
cin >> x >> y;
vec.push_back({y, x});
}
sort(vec.begin(), vec.end(), greater<pair<int, int> >());
for (int i=0; i<n; i++)
{
int y=vec[i].first, x=vec[i].second;
if (!qry(-x-y+2000000001, x-y+1000000000))
{
upd(-x-y+2000000001, x-y+1000000000);
cnt++;
}
}
cout << cnt;
}
# | 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... |