Submission #519637

#TimeUsernameProblemLanguageResultExecution timeMemory
519637sofapudenSails (IOI07_sails)C++14
40 / 100
1094 ms1348 KiB
#include<bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector<pair<int,int>> v(n); for(auto &x : v)cin >> x.first >> x.second; set<pair<int,int>> S; S.insert({1,-1}); sort(v.begin(),v.end()); int cn = -2; for(int i = 0; i < n; ++i){ int z = v[i].second; int mx = v[i].first; auto it = prev(S.end()); vector<pair<int,int>> del, add; bool ok = 0; while(z){ if((*it).first == 1)ok = 1; del.push_back(*it); int am = min(z,mx-(*it).first+1); z-=am; add.push_back({(*it).first+am,(*it).second}); mx = (*it).first-1; it = prev(it); } for(auto x : del)S.erase(x); for(auto x : add)S.insert(x); if(ok){ S.insert({1,cn--}); } } long long ans = 0; for(auto x : S){ ans += -1ll * (x.first-1) * (x.second+1); } cout << ans << '\n'; }
#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...