Submission #1281669

#TimeUsernameProblemLanguageResultExecution timeMemory
1281669dimitri.shengeliaFestival (IOI25_festival)C++20
5 / 100
113 ms17212 KiB
#include "festival.h" #include <bits/stdc++.h> using namespace std; vector<int> max_coupons(int A, vector<int> P, vector<int> T) { long long x = A; int n = P.size(); vector <int> v; multiset <pair <long long, int>> st1, st2, st3, st4; for ( int i = 0; i < n; i++ ) { if ( T[i] == 1 ) { st1.insert( { P[i], i } ); } else if ( T[i] == 2 ) { st2.insert( { (long long)P[i] * 2, i } ); } else if ( T[i] == 3 ) { st3.insert( { (long long)P[i] * 3, i } ); } else { st4.insert( { (long long)P[i] * 4, i } ); } } while ( x >= 0 ) { long long mx = -1; long long a1 = 0, a2 = 0, a3 = 0, a4 = 0; if ( st1.size() > 0 ) { a1 = x - st1.begin()->first; mx = a1; } if ( st2.size() > 0 ) { a2 = x * 2 - st2.begin()->first; mx = max( mx, a2 ); } if ( st3.size() > 0 ) { a3 = x * 3 - st3.begin()->first; mx = max( mx, a3 ); } if ( st4.size() > 0 ) { a4 = x * 4 - st4.begin()->first; mx = max( mx, a4 ); } if ( mx < 0 ) { break; } else if ( st1.size() > 0 and a1 == mx ) { v.push_back( st1.begin()->second ); st1.erase( st1.begin() ); x = a1; } else if ( st2.size() > 0 and a2 == mx ) { v.push_back( st2.begin()->second ); st2.erase( st2.begin() ); x = a2; } else if ( st3.size() > 0 and a3 == mx ) { v.push_back( st3.begin()->second ); st3.erase( st3.begin() ); x = a3; } else if ( st4.size() > 0 and a4 == mx ) { v.push_back( st4.begin()->second ); st4.erase( st4.begin() ); x = a4; } } return v; } /*int main() { int n, a; cin >> n >> a; vector <int> p, t; for ( int i = 0; i < n; i++ ) { int x; cin >> x; p.push_back( x ); } for ( int i = 0; i < n; i++ ) { int x; cin >> x; t.push_back( x ); } vector <int> answer = max_coupons( a, p, t ); cout << answer.size() << "\n"; for ( int i = 0; i < answer.size() - 1; i++ ) { cout << answer[i] << " "; } if ( answer.size() > 0 ) { cout << answer[answer.size() - 1] << "\n"; } 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...