Submission #302396

#TimeUsernameProblemLanguageResultExecution timeMemory
302396NucleistHiring (IOI09_hiring)C++14
0 / 100
1165 ms39568 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;
    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...