This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "cave.h"
#include<bits/stdc++.h>
using namespace std;
void exploreCave(int N){
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
uniform_int_distribution<int> rng(1, (1ll<<20));
int S[N] , D[N];
for(int i = 0;i<N;i++){
S[i] = 0;
D[i] = -1;
}
for(int i = 0;i<N;i++){
int x = tryCombination(S);
int l = 0 , r = N-1;
while(1){
if(l==r){
if(x==i){
S[l] = 1-S[l];
}
D[l] = i;
break;
}
int mid = (l+r)/2;
for(int j = l;j<=mid;j++){
if(D[j]==-1){
S[j] = 1-S[j];
}
}
int z = tryCombination(S);
for(int j = l;j<=mid;j++){
if(D[j]==-1){
S[j] = 1-S[j];
}
}
if((z==i&&i!=x)||(z!=i&&i==x)){
r = mid;
}else l = mid+1;
}
}
answer(S,D);
}
/*
int main(){
}*/
# | 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... |