Submission #1195162

#TimeUsernameProblemLanguageResultExecution timeMemory
1195162prideliqueeeCave (IOI13_cave)C++20
100 / 100
102 ms552 KiB
#include<bits/stdc++.h> #include "cave.h" using namespace std; void exploreCave(int N) { int sw[N]={}; memset(sw,0,sizeof sw); int x[N]={}; for(int i=0;i<N;i++) x[i]=i; int index[N]={}; int l=0,r=N-1; for(int i=0;i<N;i++) { int p=tryCombination(sw); if(p!=i) { for(int i=l;i<=r;i++) sw[x[i]]=!sw[x[i]]; } int cur[N]={}; for(int i=0;i<N;i++) cur[i]=sw[i]; int ll=l,rr=r; while(ll<rr) { int mid=(ll+rr)/2; for(int i=ll;i<=mid;i++) { cur[x[i]]=!cur[x[i]]; } p=tryCombination(cur); for(int i=ll;i<=mid;i++) { cur[x[i]]=!cur[x[i]]; } if(p!=i) rr=mid; else ll=mid+1; } index[x[ll]]=i; sw[x[ll]]=!sw[x[ll]]; for(int i=ll;i<r;i++) x[i]=x[i+1]; r--; } answer(sw,index); }
#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...