Submission #1266317

#TimeUsernameProblemLanguageResultExecution timeMemory
1266317yhx3Festival (IOI25_festival)C++20
5 / 100
61 ms7608 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; template <class T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; #define ll long long #define rep(i,a,b) for (int i = a; i < b; i++) #define rrep(i,a,b) for (int i = a; i >= b; i--) void N() {cout<<"NO\n";} void Y() {cout<<"YES\n";} void isTrue(bool ope) {if (ope) Y();else N();} ll pw(int x,int t) {ll res = 1;while (t--) res *= x;return res;} int lg(int x,int b) {int res = 0;while (x >= b) {x/=b;res++;}return res;} int MD = 1e9+7; ll MX_VL = 1e18; ll MX_ll = 2e9; bool comp(array<int,3>& a,array<int,3>& b) { if (a[1] == b[1]) return a[0] < b[0]; return a[0]*a[1]*(b[1]-1) < b[0]*b[1]*(a[0]-1); } vector<int> max_coupons(int A, vector<int> P, vector<int> T) { vector<array<int,3>> lst; int n = P.size(); rep(i,0,n) { array<int,3> vv = {P[i],T[i],i}; lst.push_back(vv); } sort(lst.begin(),lst.end(),comp); int i = 0; vector<int> ans; ll x = A; while (i < n) { if (lst[i][0] > x) break; if (x >= 1e14) { rep(j,i,n) ans.push_back(i); break; } x -= lst[i][0]; x *= lst[i][1]; ans.push_back(lst[i][2]); i++; } 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...