#include <iostream>
#include "cave.h"
using namespace std;
int Ans[5005], D[5005], S[5005], fxd[5005];
int ask(){
int ans = tryCombination(S);
if (ans == -1)
ans = 5005;
return ans;
}
void exploreCave(int n){
for (int i=0;i<n;i++){
int k = ask();
int l = 0, r = n;
while (l + 1 < r){
int mid = (l + r) / 2;
for (int j=l;j<mid;j++){
if (!fxd[j])
S[j] ^= 1;
}
int kk = ask();
for (int j=l;j<mid;j++){
if (!fxd[j])
S[j] ^= 1;
}
if (k > i and kk > i)
l = mid;
else if (k > i)
r = mid;
else if (k == i and kk == i)
l = mid;
else
r = mid;
}
D[l] = i;
if (k == i)
S[l] ^= 1;
Ans[l] = S[l];
fxd[l] = 1;
}
answer(Ans, 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... |