제출 #1327796

#제출 시각아이디문제언어결과실행 시간메모리
1327796lucasdmy동굴 (IOI13_cave)C++20
컴파일 에러
0 ms0 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
void exploreCave(int n){
    vector<int>state(n, -1), resp(n, -1);
    for(int k=0;k<n;k++){
        int p1=0, p2=n-1, my_state=0;
        vector<int>query(n);
        for(int i=0;i<n;i++){
            if(state[i]!=-1){
                query[i]=state[i];
            }else{
                state[i]=0;
            }
        }
        int aux=tryCombination(query);
        if(aux==k){
            my_state=1;
        }
        while(p1!=p2){
            int m=(p1+p2)/2;
            for(int i=0;i<n;i++){
                if(state[i]!=-1){
                    query[i]=state[i];
                }else if(p1<=i and i<=m){
                    state[i]=my_state;
                }else{
                    state[i]=(my_state+1)%2;
                }
            }
            if(tryCombination(query)==k){
                p1=m+1;
            }else{
                p2=m;
            }
        }
        state[p2]=my_state;
        resp[p2]=k;
    }
    answer(state, resp);
}

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

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:16:32: error: cannot convert 'std::vector<int>' to 'int*'
   16 |         int aux=tryCombination(query);
      |                                ^~~~~
      |                                |
      |                                std::vector<int>
In file included from cave.cpp:1:
cave.h:8:24: note:   initializing argument 1 of 'int tryCombination(int*)'
    8 | int tryCombination(int S[]);
      |                    ~~~~^~~
cave.cpp:31:31: error: cannot convert 'std::vector<int>' to 'int*'
   31 |             if(tryCombination(query)==k){
      |                               ^~~~~
      |                               |
      |                               std::vector<int>
cave.h:8:24: note:   initializing argument 1 of 'int tryCombination(int*)'
    8 | int tryCombination(int S[]);
      |                    ~~~~^~~
cave.cpp:40:12: error: cannot convert 'std::vector<int>' to 'int*'
   40 |     answer(state, resp);
      |            ^~~~~
      |            |
      |            std::vector<int>
cave.h:9:17: note:   initializing argument 1 of 'void answer(int*, int*)'
    9 | void answer(int S[], int D[]);
      |             ~~~~^~~