제출 #738656

#제출 시각아이디문제언어결과실행 시간메모리
738656BidoTeima동굴 (IOI13_cave)C++17
컴파일 에러
0 ms0 KiB
#include "cave.h"
#include <bits/stdc++.h>
int n;
int pos[5000];
int door[5000];
int dnc(int l, int r, bool b, int target){
    if(l == r)
        return l;
    int mid = (l + r) >> 1;
    // first check if it's in [l, mid]
    int s[n];
    for(int i = 0; i < n; i++){
        if(pos[i] != -1){
            s[i] = pos[i];
        }
        else if(l <= i && i <= mid){
            s[i] = b;
        }
        else{
            s[i] = !b;
        }
    }
    int res = tryCombination(s);
    if(res <= target && res != -1){
        return dnc(mid + 1, r, b, target);
    }
    return dnc(l, mid, b, target);
}
void exploreCave(int N) {
    n = N;
    memset(pos, -1, sizeof(pos));
    for(int i = 0; i < n; i++){
        int s[n];
        for(int j = 0; j < n; j++){
            if(pos[j] != -1)s[j] = pos[j];
            else s[j] = 0;
        }
        int res = tryCombination(s);
        bool b = 0;
        if(res <= i && res != -1){
            b = 1;
        }
        int s = dnc(0, n-1, b, i);
        pos[s] = b;
        door[s] = i;
    }
    answer(pos, door);
}

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

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:43:13: error: conflicting declaration 'int s'
   43 |         int s = dnc(0, n-1, b, i);
      |             ^
cave.cpp:33:13: note: previous declaration as 'int s [n]'
   33 |         int s[n];
      |             ^
cave.cpp:44:12: error: invalid types 'int [5000][int [n]]' for array subscript
   44 |         pos[s] = b;
      |            ^
cave.cpp:45:13: error: invalid types 'int [5000][int [n]]' for array subscript
   45 |         door[s] = i;
      |             ^