Submission #1171729

#TimeUsernameProblemLanguageResultExecution timeMemory
1171729LaMatematica14Cave (IOI13_cave)C++20
100 / 100
131 ms808 KiB
#include "cave.h"

#include <bits/stdc++.h>
using namespace std;

void exploreCave(int N) {
    vector<int> r(N, -1);
    int logn = 32-__builtin_clz(N);
    int bp[logn][N];

    for (int i = 0; i < logn; i++) {
        for (int j = 0; j < N; j++) {
            bp[i][j] = (j&(1<<i)) > 0;
        }
    }
    int z[N];
    for (int i = 0; i < N; i++) z[i] = 0;

    int ans[N], ans2[N];

    for (int i = 0; i < N; i++) {
        bool d = tryCombination(z) == i;
        ans[i] = 0;
        for (int j = 0; j < logn; j++) ans[i] += (tryCombination(bp[j])==i)^d ? (1<<j) : 0;
        for (int j = 0; j < logn; j++) bp[j][ans[i]] = d;
        ans2[ans[i]] = i;
        z[ans[i]] = d;
    }
    answer(z, ans2);
}
#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...