#include <iostream>
#include <vector>
#include <algorithm>
#define f first
#define s second
#define int long long
using namespace std;
int n, suf[500010], ans, ok[500010], maxx = -1e18;
pair<int,int> a[500010], b[500010];
vector<int> v;
vector<pair<int,int>> aa, bb;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i].f >> a[i].s;
b[i] = a[i];
a[i].s -= a[i].f;
b[i].s += b[i].f;
}
sort(a+1,a+n+1);
sort(b+1,b+n+1);
for (int i = 1; i <= n; i++) if (a[i].f != a[i+1].f) aa.push_back(a[i]), bb.push_back(b[i]);
for (int i = 0; i < aa.size(); i++) ok[i] = 1;
for (int i = 0; i < bb.size(); i++) {
if (maxx >= bb[i].s) ok[i] = 0;
maxx = max(maxx,bb[i].s);
}
maxx = -1e18;
for (int i = aa.size()-1; i >= 0; i--) {
if (maxx >= aa[i].s) ok[i] = 0;
maxx = max(maxx,aa[i].s);
}
for (int i = 0; i < aa.size(); i++) ans += ok[i];
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... |