Submission #851611

#TimeUsernameProblemLanguageResultExecution timeMemory
851611abcvuitunggioSails (IOI07_sails)C++17
100 / 100
42 ms4980 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int n,h,k,a[100002],sum,res; pair <int, int> p[100001]; set <int> s; void update(int i, int j){ a[i]+=j; if (a[i]) s.insert(i); else s.erase(i); } int32_t main(){ ios_base::sync_with_stdio(NULL);cin.tie(nullptr); cin >> n; for (int i=1;i<=n;i++) cin >> p[i].first >> p[i].second; sort(p+1,p+n+1); s.insert(1); s.insert(100001); for (int i=1;i<=n;i++){ auto [h,k]=p[i]; if (a[h-k+1]){ update(h-k+1,1); update(h+1,-1); continue; } auto it=s.lower_bound(h-k+1); int r=*it; r--; it--; int l=*it; r=min(r,h); update(l,1); update(l+r-h+k,-1); update(h+1,-1); update(r+1,1); } for (int i=1;i<=100000;i++){ sum+=a[i]; res+=sum*(sum-1)/2; } cout << res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...