제출 #1008448

#제출 시각아이디문제언어결과실행 시간메모리
1008448VMaksimoski008동굴 (IOI13_cave)C++17
100 / 100
175 ms604 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
 
void exploreCave(int n) {
    int S[n], D[n], vis[n];
    for(int i=0; i<n; i++) S[i] = vis[i] = 0;
 
    for(int i=0; i<n; i++) {
        int l=0, r=n-1, p=n-1;

        if(tryCombination(S) != i) for(int j=0; j<n; j++) if(!vis[j]) S[j] ^= 1;
        while(l <= r) {
            int mid = (l + r) / 2;
            for(int j=l; j<=mid; j++) if(!vis[j]) S[j] ^= 1;
            int res = tryCombination(S);
            for(int j=l; j<=mid; j++) if(!vis[j]) S[j] ^= 1;
            if(res != i) p = mid, r = mid - 1;
            else l = mid + 1;
        }

        D[p] = i;
        vis[p] = 1;
        S[p] ^= 1;
    }
 
    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...