이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
#include "cave.h"
int a[5000],b[5000],p,n;
void flip(int L,int R){
for(int i=L;i<=R;i++){
if(b[i]<0)a[i]=!a[i];
}
}
void finish(){
for(int i=0;i<n;i++){
if(b[i]<0){
a[i]=!a[i];
b[i]=tryCombination(a);
a[i]=!a[i];
}
}
answer(a,b);
exit(0);
}
void f(int L,int R,int v){
if(L==R){
b[L]=v;
if(p==v)a[L]=!a[L];
return;
}
int mid=(L+R)/2;
flip(L,mid);
int t=tryCombination(a);
if(t<0)finish();
flip(L,mid);
if(p==t)f(mid+1,R,v);
else f(L,mid,v);
}
void exploreCave(int N){
n=N;
memset(b,-1,sizeof(b));
for(int i=0;i<N;i++){
p=tryCombination(a);
if(p<0)finish();
f(0,N-1,i);
}
answer(a,b);
}
# | 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... |