Submission #776161

#TimeUsernameProblemLanguageResultExecution timeMemory
776161Ahmed57Sails (IOI07_sails)C++17
25 / 100
1083 ms4632 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; vector<int> v[100001]; for(int i = 0;i<n;i++){ int a,b;cin>>a>>b; v[a].push_back(b); } long long l = 1 , r = 100000 , ans = -1; while(l<=r){ int mid = (l+r)/2; multiset<int> s; long long all = 0; priority_queue<int> ve; for(int i = 100000;i>=1;i--){ for(auto j:v[i]){ ve.push(j); } long long sz = min(int(ve.size()),mid); all+=(sz*(sz-1))/2; vector<int> xd; while(sz--){ xd.push_back(ve.top()-1); ve.pop(); } for(auto j:xd){if(j)ve.push(j);} } if(ve.empty()){ ans = all; r = mid-1; }else{ l = mid+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...
#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...