#include <iostream>
#include <vector>
#include <algorithm>
#define f first
#define s second
using namespace std;
int n, suf[500010], ans = 1e9;
pair<int,int> a[500010], b[500010];
vector<int> v;
int main() {
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;
b[i].s = -b[i].s;
}
sort(a+1,a+n+1);
sort(b+1,b+n+1);
for (int i = n; i >= 1; i--) {
b[i].s = -b[i].s;
while ((v.size()) && (v.back() <= b[i].s)) v.pop_back();
v.push_back(b[i].s);
suf[i] = v.size();
}
v.clear();
for (int i = 1; i <= n; i++) {
while ((v.size()) && (v.back() <= a[i].s)) v.pop_back();
v.push_back(a[i].s);
ans = min(ans,(int)v.size()+suf[i]-1);
}
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... |