Submission #1251484

#TimeUsernameProblemLanguageResultExecution timeMemory
1251484vietbachleonkroos2326Festival (IOI25_festival)C++20
5 / 100
41 ms5688 KiB
#include<bits/stdc++.h> using namespace std; int n; vector<int> res; void solvesub1(int &A, vector<int> &P, vector<int> &T) { vector<pair<int, int>> vec; for (int i = 0; i < n; i++) { vec.push_back({P[i], i}); } sort(vec.begin(), vec.end()); for (int i = 0; i < n; i++) { if (A >= vec[i].first) { A -= vec[i].first; res.push_back(vec[i].second); } else { break; } } } void solvesub2(int &A, vector<int> &P, vector<int> &T) { vector<int> v1,v2; for(int i=0;i<n;i++){ if(T[i]==1)v1.push_back(i); else v2.push_back(i); } sort(v1.begin(), v1.end(), [&](int a, int b) { return P[a] < P[b]; }); sort(v2.begin(), v2.end(), [&](int a, int b) { return P[a] < P[b]; }); for(int i:v2){ if(A>=P[i]){ res.push_back(i); A=(A-P[i])*2; } } for(int i:v1){ if(A>=P[i]){ res.push_back(i); A=(A-P[i]); } } } void solvesub3(int &A, vector<int> &P, vector<int> &T) { } vector<int> max_coupons(int A, vector<int> P, vector<int> T) { n = T.size(); res.clear(); bool checksub1 = true; bool checksub2 = true; for (int i = 0; i < n; i++) { if (T[i] != 1) checksub1 = false; if (T[i] > 2) checksub2 = false; } if (checksub1) solvesub1(A, P, T); else if (checksub2) solvesub2(A, P, T); else solvesub3(A, P, T); return res; }
#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...