Submission #231217

#TimeUsernameProblemLanguageResultExecution timeMemory
231217AASGCave (IOI13_cave)C++11
0 / 100
111 ms504 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; void exploreCave(int N) { int n=N; int R[n+10];int P[n+10]; int aux2[n+10]; int x,y; bool z; for(int i=0;i<n;i++){ R[i]=1; P[i]=-1; } for(int i=0;i<n;i++){ for(int l=0;l<n;l++){aux2[l]=R[l];} int p1=0,p2=n-1; x=tryCombination(aux2);z=1; while(abs(p1-p2)!=1){ int p3=(p1+p2)/2; if(z){ for(int l=p1;l<=p3;l++){ if(P[l]==-1){ aux2[l]=0; } }}else{ for(int l=p1;l<=p3;l++){ if(P[l]==-1){ aux2[l]=1; } } } y=tryCombination(aux2); if((x>=i+1 || x==-1) && (y>=i+1 || y==-1)){p1=p3+1;z=0;} else if((x>=i+1 || x==-1) && (y<i+1 && y!=-1)){p2=p3;z=1;} else if((x<i+1 && x!=-1) && (y>=i+1 || y==-1)){ p2=p3; z=1; } else if((x<i+1 && x!=-1) && (y<i+1 && y!=-1)){ p1=p3+1; z=0; } x=y; } if(aux2[p1]==1 && P[p1]==-1){aux2[p1]=0;} else if(aux2[p1]==0 && P[p1]==-1){aux2[p1]=1;} y=tryCombination(aux2); if((x>=i+1 || x==-1) && (y>=i+1 || y==-1)){R[p2]=aux2[p2];P[p2]=i;} else if((x<i+1 && x!=-1) && (y>=i+1 || y==-1)){R[p1]=aux2[p1];P[p1]=i;} else if((x>=i+1 || x==-1) && (y<i+1 && y!=-1)){if(aux2[p1]==1){aux2[p1]=0;} else{aux2[p1]=1;} R[p1]=aux2[p1];P[p1]=i; } else if((x<i+1 && x!=-1) && (y<i+1 && y!=-1)){if(aux2[p2]==1){aux2[p2]=0;} else{aux2[p2]=1;} R[p2]=aux2[p2]; P[p2]=i; } } answer(R,P); }
#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...