Submission #1310688

#TimeUsernameProblemLanguageResultExecution timeMemory
1310688ninogogatishviliCave (IOI13_cave)C++20
0 / 100
26 ms580 KiB
#include <bits/stdc++.h>
#include "cave.h"
using namespace std;
void exploreCave(int N) {
    vector<int> S(N, 0);
    vector<int> D(N, -1);
    vector<int> u(N, 0);
    for (int d = 0; d < N; d++) {
        vector<int> c;
        for (int i = 0; i < N; i++) {
            if (!u[i]) c.push_back(i);
        }

        int l = 0, r = (int)c.size() - 1;

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

            for (int i = l; i <= mid; i++) {
                S[c[i]] ^= 1;
            }

            int res = tryCombination(S.data());

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

            for (int i = l; i <= mid; i++) {
                S[c[i]] ^= 1;
            }
        }

        int w = c[l];
        u[w] = 1;
        D[w] = d;

        S[w] ^= 1;
        int res = tryCombination(S.data());
        if (res != -1 && res <= d) {
            S[w] ^= 1;
        }
    }

    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...