#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
void exploreCave(int N){
vector<int> S(N, -67);
vector<int> d(N, -67);
for(int i = 0; i < N; i++){
vector<int> v;
for(int i = 0; i < N; i++) if(S[i] < 0) v.pb(i);
int fix[N];
for(int i = 0; i < N; i++) {
if(S[i] < 0) fix[i] == 0;
else fix[i] = S[i];
}
int x = tryCombination(fix);
if(v.size() == 1){
if(x < 0 || x > i) S[v[0]] = 0;
else S[v[0]] = 1;
d[v[0]]=i;
return;
}
vector<int> vv = v;
while(vv.size() > 1){
int m = vv.size()/2;
vector<int> l(vv.begin(), vv.begin()+m);
vector<int> r(vv.begin()+m, vv.end());
for(int i = 0; i < N; i++) {
if(S[i] < 0) {
if(x < 0 || x > i) fix[i] = 1;
else fix[i] = 0;
} else fix[i] = S[i];
}
for(int i : l) {
if(x < 0 || x > i) fix[i] = 0;
else fix[i] = 1;
}
int xx = tryCombination(fix);
if(xx < 0 || xx > i) vv = l;
else vv = r;
}
int sw = vv[0];
if(x < 0 || x > i) S[vv[0]] = 0;
else S[vv[0]] = 1;
d[sw]=i;
}
int SSS[N], DDD[N];
for(int i = 0; i < N; i++) {
SSS[i]=S[i]; DDD[i]=d[i];
}
answer(SSS, DDD);
}
| # | 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... |