제출 #1251498

#제출 시각아이디문제언어결과실행 시간메모리
1251498vietbachleonkroos2326Festival (IOI25_festival)C++20
5 / 100
82 ms5816 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> v1, v2;
    
    
    for (int i = 0; i < N; ++i) {
        (T[i] == 1 ? v1 : v2).push_back(i);
    }
    
    
    sort(v1.begin(), v1.end(), [&](int a, int b) {
        return P[a] < P[b];
    });
    
    
    sort(v2.begin(), v2.end(), [&](int a, int b) {
        
        long long left = (long long)P[a] * (T[b] - 1);
        long long right = (long long)P[b] * (T[a] - 1);
        return left < right;
    });
    
    
    long long tokens = A;
    vector<int> result;
    
    
    for (int i : v2) {
        if (tokens >= (long long)P[i]) {  
            tokens = (tokens - (long long)P[i]) * T[i];
            result.push_back(i);
        }
    }
    
    
    for (int i : v1) {
        if (tokens >= (long long)P[i]) {  
            tokens -= (long long)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...