//
// Created by adavy on 5/11/2025.
//
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
int N; cin >> N;
map<int,int> nums;
for(int i=0;i<N;++i){
int x, v; cin >> x >> v;
if (nums.find(x) == nums.end()){
nums[x] = v;
} else {
nums[x] = max(nums[x], v);
}
}
multiset<int, greater<int>> left, right;
for(auto&[k, v]:nums){
right.insert(v-k);
}
int ans = 0;
for(auto&[k,v]:nums){
right.erase(right.find(v-k));
// output right
if (!((!right.empty() && *right.begin()>=v-k) || (!left.empty() && *left.begin()>=v+k))){
ans++;
}
left.insert(v+k);
}
cout << ans << endl;
}
# | 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... |