제출 #783480

#제출 시각아이디문제언어결과실행 시간메모리
783480mindiyak동굴 (IOI13_cave)C++14
100 / 100
628 ms448 KiB
#include "cave.h"
#include <vector>
#include <iostream>

using namespace std;

int createQuestion(int N,int connectedDoor[],int doorActive[],int left,int right,int active){
    int question[N];
    for(int i=0;i<N;i++){
        if(connectedDoor[i] != -1){
            question[i] = doorActive[i];
        }else if(left <= i and i <= right){
            question[i] = active;
        }else{
            question[i] = 1-active;
        }
    }
    return tryCombination(question);
}

void exploreCave(int N) {
    int doorActive[N],connectedDoor[N];
    for(int i=0;i<N;i++){
        doorActive[i]=0;
        connectedDoor[i] = -1;
    }


    for(int i=0;i<N;i++){
        int question[N];
        int active = 0;
        
        int val = createQuestion(N,connectedDoor,doorActive,0,N-1,1);
        if(val == -1 or val > i){
            active = 1;
        }

        int left=0,right=N-1;
        while(right > left){
            int mid = (left+right)>>1;
            // cout << "search " << left << " " << mid << " " << right << endl;
            int val = createQuestion(N,connectedDoor,doorActive,left,mid,active);
            if(val == -1 or val > i){
                right = mid;
            }else{
                left = mid+1;
            }
        }
        // cout << "end " << i << " " << left << " " << right << endl << endl;

        doorActive[left]=active;
        connectedDoor[left] = i;
    }

    answer(doorActive,connectedDoor);
}

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

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:30:13: warning: unused variable 'question' [-Wunused-variable]
   30 |         int question[N];
      |             ^~~~~~~~
#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...