제출 #1278228

#제출 시각아이디문제언어결과실행 시간메모리
1278228SabaKharebava축제 (IOI25_festival)C++20
5 / 100
1096 ms4808 KiB
#include<bits/stdc++.h> using namespace std; #define pb push_back const long long MOD = 9223372036854775807; vector<int> max_coupons(int ra, vector<int> p, vector<int> t) { int n = p.size(); long long a = ra; vector<int> order; for (int i = 0; i < n; i++) order.pb(i); sort(order.begin(), order.end(), [&](int i, int j) { if (t[i] == t[j]) { return p[i] < p[j]; } else { long long A = -p[i]*t[i]*t[j] - p[j]*t[j]; long long B = -p[j]*t[i]*t[j] - p[i]*t[i]; if (A == B) return p[i] < p[j]; return A > B; } }); vector<int> ans; vector<bool> used(order.size(), false); bool bought; while (true) { bought = false; for (int i = 0; i < order.size(); i++) { if (used[i]) continue; else if (a >= p[order[i]]) { bought = true; a = ((a - p[order[i]]) * t[order[i]]) % MOD; ans.pb(order[i]); used[i] = true; break; } } if (!bought) break; } return ans; }
#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...