# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
415288 | Antekb | Hiring (IOI09_hiring) | C++14 | 921 ms | 34456 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<pair<ld, int >, pair<int, int> > > V;
for(int i=0; i<n; i++){
int a, b;
cin>>a>>b;
V.push_back({{a/ld(b), a}, {b, i}});
}
sort(V.begin(), V.end());
set<pair<int, int> > S;
long long sum=0;
int l=0;
long double k=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*V[i].st.nd>w*V[i].nd.st){
sum-=(*S.crbegin()).st;
S.erase(S.find(*S.crbegin()));
}
if(S.size()>l){
l=S.size();
k=sum*V[i].st.nd/ld(V[i].nd.st);
}
else if(S.size()== l) k =min(k, sum*V[i].st.nd/ld(V[i].nd.st));
}
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*V[i].st.nd>w*V[i].nd.st){
sum-=(*S.crbegin()).st;
S.erase(S.find(*S.crbegin()));
}
if(S.size()==l && k==sum*V[i].st.nd/ld(V[i].nd.st)){
for(auto j:S)cout<<j.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... |