// solution/badawy_correct_sort.cpp
// {
//   "verdict": "incorrect",
//   "except": {
//     "samples": "correct",
//     "subtask1": "correct",
//     "subtask5": "correct"
//   }
// }
// END HEADER
#include "festival.h"
#include <bits/stdc++.h>
using namespace std;
const long long MX = 1e18;
vector<int> max_coupons(int A, vector<int> P, vector<int> T){
    int N=P.size();
    vector<int> sorted(N);
    iota(sorted.begin(), sorted.end(), 0);
    sort(sorted.begin(), sorted.end(), [&](int i, int j) {
        if (T[i] == T[j]) return P[i] < P[j];
        return 1ll * P[i] * T[i] * (T[j] - 1) < 1ll * P[j] * T[j] * (T[i] - 1);
    });
    vector<int> ans;
    long long curt = A;
    for(int it=0;it<N;it++)
    {
        int i=sorted[it];
        if(curt >= P[i])
        {
            curt = (curt-P[i])*T[i];
            curt = min(curt, MX);
            ans.push_back(i);
        }
    }
    return ans;
}
| # | 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... |