제출 #302404

#제출 시각아이디문제언어결과실행 시간메모리
302404NucleistHiring (IOI09_hiring)C++14
50 / 100
1234 ms40956 KiB
#include <bits/stdc++.h> using namespace std; #define all(x) x.begin(),x.end() #define pb push_back #define debug(x) cerr << " " << x << " " << #x << endl; int main(){ long long nb,w; cin>>nb>>w; vector<pair<long double,long long>>g; vector<long long>k1,k2; for (long long i = 0; i < nb; ++i) { long double s,q; cin>>s>>q; g.pb({s/q,i}); k1.pb(s); k2.pb(q); } sort(all(g)); priority_queue<pair<long double,long long>>g2; long double cur=0; long long ans=0; for (long long i = 0; i < nb; ++i) { g2.push({k2[g[i].second],i}); if(i){ cur/=(g[i-1].first); } cur*=g[i].first; cur+=k1[g[i].second]; while(!(g2.empty()) && cur>w){ cur-=((g2.top().first)*g[i].first); g2.pop(); } ans=max(ans,(long long)(g2.size())); } cout<<ans<<'\n'; for (int i = 0; i < ans; ++i) { cout<<i+1<<'\n'; } return 0; }
#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...