제출 #136968

#제출 시각아이디문제언어결과실행 시간메모리
136968shafinalam동굴 (IOI13_cave)C++14
0 / 100
33 ms512 KiB
#include "cave.h"
#include <bits/stdc++.h>
 
using namespace std;
 
void exploreCave(int n)
{
    int D[n];
    int S[n];
    int lock[n];
 
    for(int i = 0; i < n; i++)
    {
        D[i] = 0;
        S[i] = 0;
        lock[i] = 0;
    }
    if(n==1)
    {
        if(tryCombination(S)==-1) answer(S, D);
        S[0] = 1;
        answer(S, D);
    }
    for(int i = 0; i < n; i++)
    {
        int lo = 0, hi = n-1;
        int last = -1, cur = -1, first = 0;
 
        while(lo<hi)
        {
            if(!first)
            {
                last = tryCombination(S);
                first = 1;
            }
            else last = cur;
            int mid = (lo+hi)>>1;
            for(int r = lo; r <= mid; r++)
            {
                if(!lock[r]) S[r] = 1-S[r];
            }
            cur = tryCombination(S);
            if(cur==last || (cur!=i && last!=i)) lo = mid+1;
            else hi = mid;
        }
        if(last==i) S[lo] = 1-S[lo];
        lock[lo] = 1;
        D[lo] = i;
    }
    answer(S, D);
}
#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...