제출 #1251483

#제출 시각아이디문제언어결과실행 시간메모리
1251483vietbachleonkroos2326축제 (IOI25_festival)C++20
컴파일 에러
0 ms0 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<int> v1,v2;
    for(int i=0;i<n;i++){
      if(t[i]==1)v1.push_back(i);
      else 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) {
        return P[a] < P[b];
    });

    for(int i:v2){
      if(A>=P[i]){
        res.push_back(i);
        A=(A-P[i])*2;
      }
    }

    for(int i:v1){
      if(A>=P[i]){
        res.push_back(i);
        A=(A-P[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;
}

컴파일 시 표준 에러 (stderr) 메시지

festival.cpp: In function 'void solvesub2(int&, std::vector<int>&, std::vector<int>&)':
festival.cpp:28:10: error: 't' was not declared in this scope
   28 |       if(t[i]==1)v1.push_back(i);
      |          ^