제출 #1282070

#제출 시각아이디문제언어결과실행 시간메모리
1282070nikakh축제 (IOI25_festival)C++20
0 / 100
1096 ms9780 KiB
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

vector<int> max_coupons(int A, vector<int> P, vector<int> T){
	vector<array<ll, 3>> v;
	int n = P.size();
	for(int i = 0; i < n; i++){
		v.push_back({P[i], T[i], i});
	}
	vector<int> R;
	while(!v.empty()){
		sort(v.begin(), v.end(), [A](array<ll, 3> &F, array<ll, 3> &S){
			ll a = F[0], at = F[1], b = S[0], bt = S[1];
			ll x = (((A - a) * at) - b) * bt;
			ll y = (((A - b) * bt) - a) * at;
			if(A < a) x = -5e18;
			if(A < b) y = -5e18;
			if(at == bt) return a > b;
			return x < y;
		});
		if(v.back()[0] < 1 || A < v.back()[0]) break;
		A = (A - v.back()[0]) * v.back()[1];
		R.push_back(v.back()[2]);
		v.pop_back();
	}
	return R;
}
#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...