Submission #817981

#TimeUsernameProblemLanguageResultExecution timeMemory
817981LiudasHiring (IOI09_hiring)C++17
60 / 100
1586 ms15632 KiB
#include <bits/stdc++.h>
using namespace std;
struct node{
    double Q;
    double P;
    int id;
};
int main()
{
    long long N, W;
    double H = 0, BP = 1e18;
    cin >> N >> W;
    vector<node> arr(N), crr;
    vector<int> ans;
    for(int i = 0; i < N; i ++){
        cin >> arr[i].P >> arr[i].Q;
        arr[i].id = i + 1;
    }
    sort(arr.begin(), arr.end(), [&](node a, node b){return a.Q < b.Q;});
    double l = 0, r = 1e16;
    for(int i = 0; i < N; i ++){
        node start = arr[i];
        double kof = start.P/start.Q;
        double price = 0;
        double c = 0;
        vector<int> brr;
        //cout << endl << endl << i << endl;
        for(node j : arr){
            //cout << j.id << " " << start.P * j.Q << " " << j.P * start.Q << " " << ((price + j.Q) * start.P / start.Q <= W) << endl;
            if(kof >= j.P/j.Q && (price + j.Q) * kof <= W){
                //cout <<"taken" << endl;
                c ++;
                price += j.Q;
                brr.push_back(j.id);
            }
        }
        //cout << i << " " << price * start.P / start.Q << " " << c << endl;
        if(H < c){
            ans = brr;
            BP = price * kof;
        }
        else if(H == c && price * kof <= BP){
            //cout << "cons"<<i << " " << c << endl;
            ans = brr;
            BP = price * kof;
        }
        H = max(c, H);
    }
    cout << H << endl;
    sort(ans.begin(), ans.end());
    for(int i : ans){
        cout << i << endl;
    }
    return 0;
}

Compilation message (stderr)

hiring.cpp: In function 'int main()':
hiring.cpp:20:12: warning: unused variable 'l' [-Wunused-variable]
   20 |     double l = 0, r = 1e16;
      |            ^
hiring.cpp:20:19: warning: unused variable 'r' [-Wunused-variable]
   20 |     double l = 0, r = 1e16;
      |                   ^
#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...