Submission #1008417

#TimeUsernameProblemLanguageResultExecution timeMemory
1008417VMaksimoski008Cave (IOI13_cave)C++17
13 / 100
421 ms560 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] = D[i] = 1, vis[i] = 0;

    //find swicth for door i
    for(int i=0; i<n; i++) {
        int l=0, r=n-1, p=n-1;

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

        D[p] = i;
        S[p] = 0;
        vis[p] = 1;
        // for(int j=0; j<n; j++) cout << S[j];
        // cout << '\n';
    }

    for(int i=0; i<n; i++) S[i] = 0;
    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...