Submission #467276

#TimeUsernameProblemLanguageResultExecution timeMemory
467276xt0r3Cave (IOI13_cave)C++14
0 / 100
18 ms408 KiB
#include "cave.h"
#include<bits/stdc++.h>
using namespace std;

int s[5005], d[5005], fix[5005];
void exploreCave(int N) {
    fill(fix, fix + 5005, -1);
    for(int i = 0; i < N; i++){
        int lo = 0, hi = N - 1;
        int was = tryCombination(s);
        while(lo < hi){
            int mid = (lo + hi) / 2;
            for(int j = lo; j <= mid; j++){
                if(fix[j] == -1){
                    s[j] ^= 1;
                }
            }
            int is = tryCombination(s);
            if((is == i) != (was == i)){
                hi = mid;
            }
            else{
                lo = mid + 1;
            }
            was = is;
        }
        d[i] = lo;
        fix[lo] = s[lo] ^ ((int)was != i);
    }
    answer(fix, 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...