제출 #817964

#제출 시각아이디문제언어결과실행 시간메모리
817964LiudasHiring (IOI09_hiring)C++17
36 / 100
1589 ms15220 KiB
#include <bits/stdc++.h> using namespace std; struct node{ long long Q; long long P; int id; }; int main() { long long N, W; long long H = 0, BP = 1e10; cin >> N >> W; vector<node> arr(N); vector<int> ans; for(int i = 0; i < N; i ++){ cin >> arr[i].P >> arr[i].Q; arr[i].id = i + 1; } for(int i = 0; i < N; i ++){ node start = arr[i]; long long price = 0; long long c = 0; sort(arr.begin(), arr.end(), [&](node a, node b){return a.Q * start.P < b.Q * start.P;}); vector<int> brr; for(node j : arr){ if(start.P * j.Q >= j.P * start.Q && (price + j.Q) * start.P <= W * start.Q){ c ++; price += j.Q; brr.push_back(j.id); } } if(H < c){ ans = brr; } else if(H == c && price * start.P <= BP * start.Q){ ans = brr; BP = price; } H = max(c, H); } cout << H << endl; for(int i : ans){ cout << i << endl; } 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...