#include <bits/stdc++.h>
#include "cave.h"
using namespace std;
void exploreCave(int n) {
int a[n], us[n];
int ans1[n], ans2[n];
for(int i = 0; i < n; i ++ ){
a[i] = 0; ans1[i] = 0; ans2[i] = 0;
};
auto fp = [&](int l, int r) {
for(int i = l; i <= r; i ++ ) {
if(us[i])continue;
a[i] ^= 1;
};
};
int t = 0;
function< void(int,int)> f = [&](int l, int r) {
if(l == r) {
int x = tryCombination(a);
if(x == t)a[l] ^= 1;
ans1[l] = a[l];
us[l] = 1;
ans2[l] = t++;
};
int m = (l + r) >> 1;
fp(l, m);
if(tryCombination(a) == t) {
fp(l,m);
f(l, m);
return;
};
fp(l, m);
f(m+1, r);
};
for(int i = 0; i < n; i ++ ) {
int x = tryCombination(a);
if(x == i) fp(0,n-1);
f(0, n-1);
};
answer(ans1, ans2);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |