# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
415285 | Antekb | Hiring (IOI09_hiring) | C++14 | 945 ms | 29088 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define st first
#define nd second
using namespace std;
typedef long double ld;
int main(){
int n;
long long w;
cin>>n>>w;
vector<pair<ld, pair<int, int> > > V;
for(int i=0; i<n; i++){
int a, b;
cin>>a>>b;
V.push_back({a/ld(b), {b, i}});
}
sort(V.begin(), V.end());
set<pair<int, int> > S;
long long sum=0;
int l=0;
for(int i=0; i<n; i++){
S.insert(V[i].nd);
sum+=V[i].nd.st;
/*while(S.size()&& S2.size() && *S2.begin()<*S.crbegin()){
sum-=(*S.crbegin()).st;
sum+=(*S.crbegin()).st;
S.insert(*S2.begin());
S2.erase(*S2.begin());
}*/
while(S.size() && sum>w/V[i].st){
sum-=(*S.crbegin()).st;
S.erase(S.find(*S.crbegin()));
}
l=max(l, (int)S.size());
}
cout<<l<<"\n";
S.clear();
sum=0;
for(int i=0; i<n; i++){
S.insert(V[i].nd);
sum+=V[i].nd.st;
while(S.size() && sum>w/V[i].st){
sum-=(*S.crbegin()).st;
S.erase(S.find(*S.crbegin()));
}
if(S.size()==l){
for(auto i:S)cout<<i.nd+1<<"\n";
return 0;
}
}
//cout<<"a";
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |