Submission #701270

#TimeUsernameProblemLanguageResultExecution timeMemory
701270HanksburgerSails (IOI07_sails)C++17
100 / 100
46 ms5108 KiB
#include <bits/stdc++.h> using namespace std; pair<long long, long long> a[100005]; multiset<long long> s; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long n, cnt, ans=0; cin >> n; for (long long i=1; i<=n; i++) cin >> a[i].first >> a[i].second; sort(a+1, a+n+1); for (long long i=1; i<=n; i++) { auto it=s.lower_bound(a[i].first-a[i].second+1); long long l=0, r=a[i].first; if (it!=s.begin()) { l=*prev(it); s.erase(prev(it)); } if (it!=s.end()) { r=*it; s.erase(it); s.insert(a[i].first); } s.insert(l+a[i].second-(a[i].first-r)); } cnt=s.size(); for (auto it=s.begin(); it!=s.end(); it++) { if (it==s.begin()) ans+=cnt*(cnt-1)/2*(*it); else ans+=cnt*(cnt-1)/2*(*it-*prev(it)); cnt--; } cout << ans; }
#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...