Submission #1217725

#TimeUsernameProblemLanguageResultExecution timeMemory
1217725mkkkkkkkkCave (IOI13_cave)C++20
0 / 100
103 ms528 KiB
#include <bits/stdc++.h> #include "cave.h" void exploreCave(int N) { int d[N]={},s[N]={}; memset(s,-1,sizeof(s)); memset(d,-1,sizeof(d)); for(int i=0;i<N;i++) { int ss[N]={}; for(int j=0;j<N;j++) { if(s[i]!=-1) ss[i]=s[i]; } int br=tryCombination(ss); if(br==-1) br=N; if(br>i) { int l=0,r=N-1; int m=(l+r)/2; for(;l<=r;m=(l+r)/2) { memset(ss,0,sizeof(ss)); for(int j=0;j<=m;j++) { if(s[i]!=-1) ss[i]=s[i]; else ss[i]=1; } int brr=tryCombination(ss); if(brr==-1) brr=N; if(brr>i) { l=m+1; } else { r=m-1; } } d[i]=l; s[l]=0; } else { int l=0,r=N-1; int m=(l+r)/2; for(;l<=r;m=(l+r)/2) { memset(ss,0,sizeof(ss)); for(int j=0;j<=m;j++) { if(s[i]!=-1) ss[i]=s[i]; else ss[i]=1; } int brr=tryCombination(ss); if(brr==-1) brr=N; if(brr>i) { r=m-1; } else { l=m+1; } } d[i]=l; s[l]=1; } } int s1[N]={}; for(int i=0;i<N;i++) s1[d[i]]=i; answer(s,s1); }
#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...