#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
//
void exploreCave(int n) {
int d[n];
int cur[n];
for(int i = 0; i < n; i++){
d[i] = cur[i] = 0;
}
for(int i = 0; i < n; i++){
int j = tryCombination(cur);
if(j == i){
int low = 0;
int top = n-i-1;
int ns = 0;
while(low <= top){
int mid = (low + top)/2;
int ncur[n];
int co = 0;
int l = 0;
for(int y = 0; y < n && co <= mid; y++){
if(d[y] != 0){
ncur[y] = cur[y];
}else{
l = y;
co++;
ncur[y] = 1;
}
}
if(tryCombination(ncur) > i){
ns = l;
top = mid-1;
}else{
low = mid+1;
}
}
cur[ns] = 1;
d[ns] = i;
}else{
int low = 0;
int top = n-i-1;
int ns = 0;
while(low <= top){
int mid = (low + top)/2;
int ncur[n];
int co = 0;
int l = 0;
for(int y = 0; y < n && co <= mid; y++){
if(d[y] != 0){
ncur[y] = cur[y];
}else{
l = y;
co++;
ncur[y] = 1;
}
}
if(tryCombination(ncur) <= i){
ns = l;
top = mid-1;
}else{
low = mid+1;
}
}
d[ns] = i;
}
}
answer(cur, 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... |