# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1187448 | Mamikonm1 | Cave (IOI13_cave) | C++17 | 0 ms | 0 KiB |
#include<bits//stdc++.h>
#include "cave.h"
void exploreCave(int n) {
int s[n]={},d[n]={},cur=0,l,r,md,S[n]={},ind;
bool vis[n]={};
for(int i=0;i<n;++i){
cur=tryCombination(s)==i;
l=0;r=n-i;
while(l+1<r){
md=r+l>>1;
for(int j=0;j<n;++j)S[j]=s[j];
for(int j=0,cnt=0;j<n;++j){
if(!vis[j]){
cnt++;
if(cnt<=md)S[j]=cur;
else S[j]=!cur;
}
}
int x=tryCombination(S);
if(x==-1)x=N;
if(x>i)r=md;
else l=md;
}
ind=0;
for(int cnt=0;cnt<r;++ind){
if(!vis[ind]){
++cnt;
}
}
--ind;
r=ind;
d[r]=i;
s[r]=cur;
vis[r]=1;
}
answer(s,d);
}