Submission #1251491

#TimeUsernameProblemLanguageResultExecution timeMemory
1251491vietbachleonkroos2326축제 (IOI25_festival)C++20
5 / 100
41 ms5564 KiB
#include <bits/stdc++.h>
using namespace std;

int n;
vector<int> res;

void solvesub1(int &A, vector<int> &P, vector<int> &T) {
    vector<pair<int, int>> vec;
    for (int i = 0; i < n; i++) {
        vec.push_back({P[i], i});
    }
    
    sort(vec.begin(), vec.end());
    
    for (int i = 0; i < n; i++) {
        if (A >= vec[i].first) {
            A -= vec[i].first;
            res.push_back(vec[i].second);
        } else {
            break;
        }
    }
}

void solvesub2(int &A, vector<int> &P, vector<int> &T) {
    vector<pair<long long, int>> vec; 
    
    for (int i = 0; i < n; i++) {
        if (T[i] == 2) {
            vec.emplace_back(P[i], i);
        } else {
            vec.emplace_back(1e9 + P[i], i);
        }
    }
    
    sort(vec.begin(), vec.end());
    
    for (auto [_, i] : vec) {
        if (A >= P[i]) {
            res.push_back(i);
            A = (A - P[i]) * T[i];
        }
    }
}

void solvesub3(int &A, vector<int> &P, vector<int> &T) {
    
}

vector<int> max_coupons(int A, vector<int> P, vector<int> T) { 
    n = T.size();
    res.clear();
    
    bool checksub1 = true;
    bool checksub2 = true;
    for (int i = 0; i < n; i++) {
        if (T[i] != 1) checksub1 = false;
        if (T[i] > 2) checksub2 = false;
    }

    if (checksub1) solvesub1(A, P, T);
    else if (checksub2) solvesub2(A, P, T);
    else solvesub3(A, P, T);

    return res;
}
#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...