#include "cave.h"
void exploreCave(int N) {
// ans(S, D)
// D[i] é a porta conectada a alavanca i
// 70000 perguntas
// N <= 5000
int S[N], fixo[N], D[N];
for(int i = 0; i < N; i++) S[i] = fixo[i] = D[i] = 0;
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++)
if(!fixo[j]) S[j] = 0;
int rsp = tryCombination(S), flag = 0;
if(rsp <= i and rsp != -1) flag = 1;
int l = 0, r = N-1;
while(l < r) {
int mid = (l+r)/2;
for(int j = 0; j <= mid; j++)
if(!fixo[j]) S[j] = flag;
for(int j = mid+1; j < N; j++)
if(!fixo[j]) S[j] = 1-flag;
int rsp1 = tryCombination(S);
if(rsp1 > i or rsp1 == -1) r = mid;
else l = mid+1;
}
D[l] = i;
S[l] = flag;
fixo[l] = 1;
}
answer(S, D);
return;
}
| # | 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... |