Submission #1253099

#TimeUsernameProblemLanguageResultExecution timeMemory
1253099almothana05Festival (IOI25_festival)C++20
12 / 100
1096 ms8360 KiB
#include "festival.h" #include<bits/stdc++.h> #define ll long long #define F first #define S second #define pii pair<ll,ll> const ll mxN = 1e6 + 5; using namespace std; vector<pii>t[5]; bool vis[mxN]; ll prfx[mxN]; ll calc(ll a,pii p,ll t){ return (a - p.F) * t; } std::vector<int> max_coupons(int A, std::vector<int> P, std::vector<int> T) { ll a = A; ll n = P.size(); for(ll i = 0 ;i < P.size();i++){ t[T[i]].push_back({P[i],i}); } ll ans = 0; vector<int>sol = {}; for(ll i = 1;i <= 4;i++) sort(t[i].begin(),t[i].end()); for(ll i = 0;i < t[1].size();i++){ prfx[i] = t[1][i].F; if(i) prfx[i] += prfx[i - 1]; } ll oga = a; for(ll i = 0;i <= t[2].size();i++){ // for(ll j = 0;j <= t[3].size();j++){ // for(ll k = 0;k <= t[4].size();k++){ // } // } a = oga; ll num = 0; vector<int>vec = {}; for(ll el = 0; el < i;el++){ if(calc(a,t[2][el],2) < 0) continue; if(a < 1e17) a = calc(a,t[2][el],2); num++; vec.push_back(t[2][el].S); } for(ll el = 0;el < t[1].size();el++){ if(a >= t[1][el].F){ num++; a -= t[1][el].F; vec.push_back(t[1][el].S); } } if(a >= 0){ if(num > ans){ ans = num; sol = vec; } } } return sol; }
#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...