Submission #767533

#TimeUsernameProblemLanguageResultExecution timeMemory
767533Ahmed57Cave (IOI13_cave)C++17
0 / 100
63 ms368 KiB
#include "cave.h"
#include<bits/stdc++.h>

using namespace std;

void exploreCave(int N){
    mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
    uniform_int_distribution<int> rng(1, (1ll<<20));
    int S[N] , D[N];
    for(int i = 0;i<N;i++){
        S[i] = 0;
        D[i] = -1;
    }
    for(int i = 0;i<N;i++){
        int x = tryCombination(S);
        int l = 0 , r = N-1;
        while(1){
            if(l==r){
                if(x==i){
                    S[l] = 1-S[l];
                }
                D[l] = i;
                break;
            }
            int mid = (l+r)/2;
            for(int i = l;i<=mid;i++){
                if(D[i]==-1){
                    S[i] = 1-S[i];
                }
            }
            int z = tryCombination(S);
            for(int i = l;i<=mid;i++){
                if(D[i]==-1){
                    S[i] = 1-S[i];
                }
            }
            if(z>i){
                l = mid+1;
            }else r = mid;
        }
    }
    answer(S,D);
}
/*
int main(){

}*/
#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...