#include<bits/stdc++.h>
using namespace std;
vector<int> max_coupons(int a, vector<int> p, vector<int> t) {
#define pb push_back
int n = p.size();
vector<vector<int>> f, s;
for (int i = 0; i < n; i++) {
f.pb({p[i], t[i], i});
}
sort(f.begin(), f.end(), [&](vector<int> a, vector<int> b) {
if (a[1] == b[1])
return a[0] < b[0];
else {
int A = -a[0]*a[1]*b[1] - b[0]*b[1];
int B = -b[0]*a[1]*b[1] - a[0]*a[1];
if (A == B)
return a[0] < b[0];
return A > B;
}
});
vector<int> ans;
for (vector<int> v : f) {
if (a < v[0])
break;
a = (a-v[0]) * v[1];
ans.pb(v[2]);
}
return ans;
}
/*
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, a; cin>> n >> a;
vector<int> p(n), t(n);
for (int &e : p)
cin>> e;
for (int &e : t)
cin>> e;
vector<int> ans = max_coupons(a, p, t);
for (int e : ans)
cout<< e << ' ';
cout<< '\n';
return 0;
}
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |