제출 #1218505

#제출 시각아이디문제언어결과실행 시간메모리
1218505nickolasarapidisCave (IOI13_cave)C++20
컴파일 에러
0 ms0 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 5000;

vector<int> S, D;
vector<bool> B; // 0 up 1 down

int first, M;

void solve(int l, int r){
	if(l == r){
		S[l] = 1;
		int f = tryCombination(S);
		if(f == -1) f = M;
		if(f < first){
			S[l] = 0;
			B[l] = 1;
			D[l] = f;
		}
		if(f > first){
			B[l] = 1;
			D[l] = first;
			first = f;
		}
		if(f == first){
			S[l] = 0;
		}
		return;
	}
	int m = (l + r)/2;
	solve(l, m);
	solve(m + 1, r);
	for(int i = l; i <= r; i++){
		if(B[i]) continue;
		S[i] = 1;
		int f = tryCombination(S);
		if(f == -1) f = M;
		if(f < first){
			S[i] = 0;
			B[i] = 1;
			D[i] = f;
		}
		if(f > first){
			B[i] = 1;
			D[i] = first;
			first = f;
		}
		if(f == first){
			S[i] = 0;
		}
	}
	return;
}

void exploreCave(int N){
	for(int i = 0; i < N; i++){
		S.push_back(0);
		B.push_back(false);
	}
	first = tryCombination(S);
	if(first == -1) first = N;
	M = N;
	solve(0, N - 1);
	answer(S, D);
}

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

cave.cpp: In function 'void solve(int, int)':
cave.cpp:15:40: error: cannot convert 'std::vector<int>' to 'int*'
   15 |                 int f = tryCombination(S);
      |                                        ^
      |                                        |
      |                                        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:38:40: error: cannot convert 'std::vector<int>' to 'int*'
   38 |                 int f = tryCombination(S);
      |                                        ^
      |                                        |
      |                                        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: In function 'void exploreCave(int)':
cave.cpp:62:32: error: cannot convert 'std::vector<int>' to 'int*'
   62 |         first = tryCombination(S);
      |                                ^
      |                                |
      |                                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:66:16: error: cannot convert 'std::vector<int>' to 'int*'
   66 |         answer(S, D);
      |                ^
      |                |
      |                std::vector<int>
In file included from cave.cpp:1:
cave.h:9:17: note:   initializing argument 1 of 'void answer(int*, int*)'
    9 | void answer(int S[], int D[]);
      |             ~~~~^~~