Submission #16328

#TimeUsernameProblemLanguageResultExecution timeMemory
16328cometCave (IOI13_cave)C++98
25 / 100
349 ms512 KiB
#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 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...