Submission #442966

#TimeUsernameProblemLanguageResultExecution timeMemory
442966dutchHiring (IOI09_hiring)C++17
61 / 100
384 ms26972 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int n, w, j, s; array<int, 2> res, c; signed main(){ cin.tie(0)->sync_with_stdio(0); cin >> n >> w; array<int, 3> a[n]; for(auto &i : a){ cin >> i[0] >> i[1]; i[0] = (w * i[1]) / -i[0]; i[2] = ++j; } sort(a, a+n); priority_queue<int> q; priority_queue<array<int, 2>> r; for(auto &i : a){ q.push(i[1]); s += i[1]; while(s > -i[0]) s -= q.top(), q.pop(); res = max(res, {(int)q.size(), s/i[0]}); } vector<int> ans = {res[0]}; s = 0; for(auto &i : a){ r.push({i[1], i[2]}); s += i[1]; while(s > -i[0]) s -= r.top()[0], r.pop(); if(res == (c = {(int)r.size(), s/i[0]})){ while(!r.empty()) ans.push_back(r.top()[1]), r.pop(); break; } } for(int i : ans) cout << i << '\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...