#include <bits/stdc++.h>
using namespace std;
#define all(x) x.begin(), x.end()
#define mod 1000000007
#define sp << " " <<
#define endl << '\n'
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
vector<pair<long long, long long>> building(N);
for (int i = 0; i < N; i++){
cin >> building[i].second >> building[i].first;
}
sort(all(building), greater<>{});
set<pair<long long, long long>> plane;
for (int i = 0; i < N; i++){
set<pair<long long, long long>>::iterator nx = plane.lower_bound({ building[i].second, building[i].first }), pr;
if (nx != plane.begin())
pr = prev(nx);
if (nx != plane.end() && abs(nx->first - building[i].second) <= nx->second - building[i].first){
continue;
}
if (nx != plane.begin() && abs(pr->first - building[i].second) <= pr->second - building[i].first){
continue;
}
plane.insert({ building[i].second, building[i].first });
}
cout << plane.size();
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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |