#include <bits/stdc++.h>
#include "cave.h"
#define coutf(n, m) cout << fixed << setprecision(n) << m
#define forr(i, a, n) for (int i = a; i < n; i++)
#define forl(i, a, n) for (int i = a; i > n; i--)
#define macos ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define endll "\n"
#define sp " "
typedef long long ll;
using namespace std;
const int M = 5010;
int k;
int S[M],D[M],test[M];
bool fix[M];
void exploreCave(int n) {
forr(i,0,n){ // loop the door
// int i = 0;
k = (tryCombination(S)==i);
int l = 0, r = n - 1,m;
while(l<r){ // binary search to find the position of river
m = (l+r) >> 1;
forr(j,0,n){
if(fix[j])test[j] = S[j];
else if(l<=j&&j<=m)test[j] = k;
else test[j] = 1 - k;
// cout << test[j] << sp;
}
// cout << endll;
// cout << "B : " << l << sp << m << sp << r << sp << (tryCombination(test)==i) << endll;
if(tryCombination(test)==i)l = m + 1;
else r = m;
}
// cout << "STDOUT : ";
// cout << l << sp << m << sp << r << endll;
S[l] = k;
D[l] = i;
fix[l] = true;
}
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... |