제출 #1347593

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

int S[5005],S2[5005],D[5005];
vector<int> ans;
int N;

int ask(int b,int t){
    for(int i=0;i<N;++i) S[i] = bool(i&(1<<b)) ^ (1-t);
    for(auto &e:ans) S[e]=1;
    int res = tryCombination(S);
    return res==-1 ? N : res;
}

void exploreCave(int N){
    ::N = N;
    ans.clear();
    int K = 31-__builtin_clz(N);
    for(int i=0;i<N;++i){
        int id=0;
        int t = 1;
        fill(S,S+N,0);
        for(auto &e:ans) S[e]=S2[e];
        if(tryCombination(S) != i) t = 0;
        for(int j=0;j<=K;++j){
            if(ask(j,t)>i) id |= 1<<j;
        }
        ans.push_back(id);
        D[id] = i;
        S2[id] = t;
    }
    answer(S2,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...