Submission #1216794

#TimeUsernameProblemLanguageResultExecution timeMemory
1216794takoshanavaCave (IOI13_cave)C++20
0 / 100
144 ms536 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

int R[5000], D[5000];
bool vis[5000];

void exploreCave(int N) {
    for (int i = 0; i < N; i++) {
        R[i] = 0;
        D[i] = 0;
        vis[i] = false;
    }

    for (int j = 0; j < N; j++) {
        int l = 0, r = N - 1, idx = -1;

        while (l <= r) {
            int mid = (l + r) / 2;

            int tmp[5000];
            for (int i = 0; i < N; i++)
                tmp[i] = R[i];

            for (int i = l; i <= mid; i++){
                if (!vis[i]){
                    tmp[i] = 1 - tmp[i];
                }
            }

            int res = tryCombination(tmp);

            if (res == -1 or res > j) {
                r = mid - 1;
            } else {
                l = mid + 1;
            }
        }

        idx = l;
        vis[idx] = true;
        R[idx] = 0;
        int res = tryCombination(R);
        if (res != -1 and res <= j){
            R[idx] = 1;
        }

        D[idx] = j;
    }

    answer(R, 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...