#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
const int maxN = 5000;
int S[maxN];
int D[maxN];
int prv;
set<int> full;
void solve(set<int> a) {
if (a.size()==1) {
int i = *a.begin();
S[i] = 1;
int cur = tryCombination(S);
if (cur!=-1 && cur<prv) S[i] = 0;
if (cur==-1) prv = -1;
else prv = max(prv, cur);
full.erase(i);
}
set<int> b;
while (a.size()>b.size()) {
b.insert(*a.begin());
a.erase(a.begin());
}
for (auto i: a) {
S[i] = 1;
}
int res = tryCombination(S);
for (auto i: a) {
S[i] = 0;
}
if (res!=prv) solve(a);
else solve(b);
}
void exploreCave(int N) {
prv = tryCombination(S);
for (int i=0; i<N; i++) full.insert(i);
while (prv!=-1) {
solve(full);
}
for (int i=0; i<N; i++) {
S[i] ^= 1;
D[i] = tryCombination(S);
S[i] ^= 1;
}
answer(S, D);
}
# | 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... |