Submission #989602

#TimeUsernameProblemLanguageResultExecution timeMemory
989602ttamxCave (IOI13_cave)C++17
100 / 100
421 ms712 KiB
#include "cave.h"
#include <bits/stdc++.h>

using namespace std;

void exploreCave(int N){
    vector<int> s(N),d(N);
    vector<bool> known(N);
    for(int i=0;i<N;i++){
        for(int j=0;j<N;j++)if(!known[j])s[j]=0;
        int door=tryCombination(s.data());
        int state=1;
        if(door>i||door==-1)state=0;
        int l=0,r=N-1;
        while(l<r){
            int m=(l+r)/2;
            for(int j=0;j<N;j++)if(!known[j]){
                if(j<=m)s[j]=state;
                else s[j]=state^1;
            }
            door=tryCombination(s.data());
            if(door>i||door==-1)r=m;
            else l=m+1;
        }
        known[l]=true;
        s[l]=state;
        d[l]=i;
    }
    answer(s.data(),d.data());
}
#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...