제출 #1344016

#제출 시각아이디문제언어결과실행 시간메모리
1344016vjudge1Festival (IOI25_festival)C++20
5 / 100
58 ms5680 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> result;
    // separar cupones
    vector<int> buenos; // T > 1
    vector<int> malos;  // T == 1
    for (int i = 0; i < N; i++) {
        if (T[i] > 1) {
            buenos.push_back(i);
        } else {
            malos.push_back(i);
        }
    }
    // ordenar los buenos por mayor T y menor precio
    sort(buenos.begin(), buenos.end(), [&](int a, int b) {
        if (T[a] == T[b]) return P[a] < P[b];
        return T[a] > T[b];
    });
    // intentar comprar los buenos
    for (int i : buenos) {
        if (A >= P[i]) {
            A = (A - P[i]) * T[i];
            result.push_back(i);
        }
    }
    // ordenar los malos por precio
    sort(malos.begin(), malos.end(), [&](int a, int b) {
        return P[a] < P[b];
    });
    // comprar los malos
    for (int i : malos) {
        if (A >= P[i]) {
            A -= P[i];
            result.push_back(i);
        }
    }
    return result;
}
#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...