# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
881231 | 2023-11-30T22:58:19 Z | Matjaz | Hiring (IOI09_hiring) | C++14 | 569 ms | 17900 KB |
// // IOI2009Salesman.cpp // // // Created by Matjaz Leonardis on 11/11/2023. // #include <iostream> #include <vector> #include <algorithm> #include <queue> using namespace std; struct worker{ long long S; long long Q; int index; bool operator<(const worker& other) const { return S * other.Q < other.S * Q; } }; struct w2{ long long Q; int index; bool operator<(const w2& other) const { return Q < other.Q; } }; int N; long long W; int main(){ cin >> N >> W; vector<worker> w(N); for (int i=0;i<N;i++){ cin >> w[i].S >> w[i].Q; w[i].index = i + 1; } sort(w.begin(), w.end()); long long total = 0; priority_queue<w2> Q; int best = 0; long long minMoneyQnS = 0; long long minMoneyQd = 0; int besti = 0; for (int i=0;i<N;i++){ w2 x; x.Q = w[i].Q; x.index = w[i].index; Q.push(x); total += x.Q; while (total * w[i].S > W * w[i].Q){ total -= Q.top().Q; Q.pop(); } if (Q.size() == best){ if (total * w[i].S * minMoneyQd < w[i].Q * minMoneyQnS){ minMoneyQd = w[i].Q; minMoneyQnS = total * w[i].S; besti = i; } } if (Q.size() > best){ best = Q.size(); minMoneyQd = w[i].Q; minMoneyQnS = total * w[i].S; besti = i; } } cout << best << endl; total = 0; while (!Q.empty()) Q.pop(); for (int i=0;i<N;i++){ w2 x; x.Q = w[i].Q; x.index = w[i].index; Q.push(x); total += x.Q; while (total * w[i].S > W * w[i].Q){ total -= Q.top().Q; Q.pop(); } if (i == besti){ while (!Q.empty()){ cout << Q.top().index << endl; Q.pop(); } break; } } return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 2 ms | 348 KB | Output is correct |
7 | Correct | 2 ms | 348 KB | Output is correct |
8 | Correct | 2 ms | 360 KB | Output is correct |
9 | Correct | 5 ms | 600 KB | Output is correct |
10 | Correct | 6 ms | 604 KB | Output is correct |
11 | Correct | 5 ms | 604 KB | Output is correct |
12 | Correct | 10 ms | 856 KB | Output is correct |
13 | Correct | 6 ms | 604 KB | Output is correct |
14 | Correct | 13 ms | 952 KB | Output is correct |
15 | Correct | 13 ms | 860 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 1 ms | 348 KB | Output is correct |
4 | Correct | 20 ms | 1188 KB | Output is correct |
5 | Correct | 43 ms | 2256 KB | Output is correct |
6 | Correct | 303 ms | 9648 KB | Output is correct |
7 | Correct | 414 ms | 14272 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 348 KB | Output is correct |
2 | Correct | 1 ms | 348 KB | Output is correct |
3 | Correct | 1 ms | 348 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 348 KB | Output is correct |
2 | Correct | 1 ms | 348 KB | Output is correct |
3 | Correct | 1 ms | 348 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 348 KB | Output is correct |
2 | Correct | 1 ms | 348 KB | Output is correct |
3 | Correct | 2 ms | 348 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 121 ms | 4232 KB | Output is correct |
2 | Correct | 117 ms | 4244 KB | Output is correct |
3 | Correct | 115 ms | 4232 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 195 ms | 7280 KB | Output is correct |
2 | Correct | 197 ms | 7108 KB | Output is correct |
3 | Correct | 197 ms | 7284 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 477 ms | 16216 KB | Output is correct |
2 | Correct | 486 ms | 16580 KB | Output is correct |
3 | Correct | 479 ms | 16832 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 564 ms | 17856 KB | Output is correct |
2 | Correct | 557 ms | 17900 KB | Output is correct |
3 | Correct | 569 ms | 16832 KB | Output is correct |