Submission #1135566

#TimeUsernameProblemLanguageResultExecution timeMemory
1135566yellowtoadAdvertisement 2 (JOI23_ho_t2)C++20
10 / 100
312 ms23600 KiB
#include <iostream> #include <vector> #include <algorithm> #define f first #define s second #define int long long using namespace std; int n, suf[500010], ans = 1e9; pair<int,int> a[500010], b[500010]; vector<int> v; signed 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(); ans = suf[1]; for (int i = 1; i <= n; i++) { if ((i != 1) && (i != n) && (a[i].s == a[i-1].s) && (a[i].s == a[i+1].s)) continue; 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...