Submission #1216823

#TimeUsernameProblemLanguageResultExecution timeMemory
1216823mariamp1Cave (IOI13_cave)C++20
100 / 100
296 ms520 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

void exploreCave(int n) {
    int a[n], b[n];
    bool v[n];
    for (int i = 0; i < n; i++) {
        a[i] = 0;
        b[i] = 0;
        v[i] = false;
    }

    for (int t = 0; t < n; t++) {
        for (int i = 0; i < n; i++) {
            if (!v[i]) a[i] = 0;
        }

        int res = tryCombination(a);
        int c = (res != t ? 0 : 1);

        for (int i = 0; i < n; i++) {
            if (!v[i]) a[i] = 1 - c;
        }

        int l = 0, r = n - 1, idx = 0;
        while (l < r) {
            int m = (l + r) / 2;
            for (int i = l; i <= m; i++) {
                if (!v[i]) a[i] = c;
            }

            res = tryCombination(a);

            if (res != t) {
                idx = m;
                r = m;
            } else {
                idx = m + 1;
                l = m + 1;
            }

            for (int i = l; i <= m; i++) {
                if (!v[i]) a[i] = 1 - c;
            }
        }

        b[idx] = t;
        v[idx] = true;
        a[idx] = c;
    }

    answer(a, b);
}
#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...