제출 #1286768

#제출 시각아이디문제언어결과실행 시간메모리
1286768harryleee동굴 (IOI13_cave)C++20
100 / 100
103 ms524 KiB
#include "cave.h"
#include<bits/stdc++.h>
using namespace std;

void exploreCave(int N) {

    int s[N];
    int d[N];
    int marc[N];

    for(int i = 0; i < N; i++) {
        s[i] = 0;
        d[i] = -1;
        marc[i] = 0;
    }

    int prev = tryCombination(s);
    for(int i = 0; i < N; i++) {
        int l = 0, r = N-1;
        while(l != r) {
            int mid = (l+r)/2;
            for(int i = l; i <= mid; i++) if(!marc[i]) s[i] = 1 - s[i];
            int cur = tryCombination(s);
            if((cur == i && prev != i) || (cur != i && prev == i)) r = mid;
            else l = min(r,mid + 1);
            prev = cur;
        }
        if(prev == i) {
            s[l] = 1 - s[l];
            prev = tryCombination(s);
        }
        marc[l] = 1;
        d[l] = i;
    }

    answer(s,d);

    return;
}
#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...