#include <bits/stdc++.h>
#include "cave.h"
using namespace std;
vector<int> s;
int ask(vector<int> &p){
int pt[p.size()];
for(int i = 0; i < p.size(); i++) pt[i] = p[i];
return tryCombination(pt);
}
void exploreCave(int N){
s.resize(N);
for(int i = 0; i < N; i++) s[i] = -1;
for(int i = 0; i < N; i++){
auto p = s; bool tr = true;
for(int j = 0; j < N; j++)
if(s[j] == -1) s[j] = 1;
int t = ask(p);
if(t >= i+1) tr = !tr;
int l = 0, r = 0, ans = 0;
while(l < r){
int m = (l+r)/2; auto pt = s;
for(int j = 0; j < m; j++)
if(pt[j] == -1) pt[j] = (tr ? 1 : 0);
int d = ask(pt);
if(d >= i+1) l = m;
else r = m;
if(l == r-1){
ans = m;
break;
}
}
s[ans] = (tr ? 1 : 0);
}
}
| # | 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... |