Submission #16333

#TimeUsernameProblemLanguageResultExecution timeMemory
16333cometCave (IOI13_cave)C++98
100 / 100
393 ms608 KiB
#include <cstring> #include "cave.h" int a[5000],b[5000],p,n; bool flip(int L,int R){ bool ret=0; for(int i=L;i<=R;i++){ if(b[i]<0)a[i]=!a[i],ret=1; } return ret; } 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); } 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; if(!flip(L,mid)){ f(mid+1,R,v); return; } int t=tryCombination(a); if(t<0)finish(); flip(L,mid); if((p!=v&&t!=v)||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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...