제출 #1269311

#제출 시각아이디문제언어결과실행 시간메모리
1269311sula2축제 (IOI25_festival)C++20
24 / 100
51 ms7476 KiB
#include <bits/stdc++.h> using namespace std; vector<int> max_coupons(int a, vector<int> p, vector<int> t) { int n = p.size(); vector<int> ind[3]; for (int i = 0; i < n; i++) { ind[t[i]].push_back(i); } for (int i = 1; i <= 2; i++) sort(ind[i].begin(), ind[i].end(), [&](int x, int y) { return p[x] < p[y]; }); vector<long long> pr{ 0 }; for (int i : ind[1]) pr.push_back(pr.back() + p[i]); long long tokens = a; int ptr = pr.size() - 1; while (pr[ptr] > tokens) ptr--; int c1 = ptr, c2 = 0, j = 0; for (int i : ind[2]) { tokens = min((long long)1e18, (tokens - p[i])*t[i]); if (tokens < 0) break; while (pr[ptr] > tokens) ptr--; while (ptr+1 < pr.size() && pr[ptr+1] <= tokens) ptr++; j++; if (j + ptr > c1 + c2) { c1 = ptr; c2 = j; } } vector<int> ans; for (int i = 0; i < c2; i++) ans.push_back(ind[2][i]); for (int i = 0; i < c1; i++) ans.push_back(ind[1][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...