제출 #231203

#제출 시각아이디문제언어결과실행 시간메모리
231203AASG동굴 (IOI13_cave)C++17
0 / 100
147 ms384 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; void exploreCave(int N) { int n=N; int R[n];int P[n]; int aux2[n]; int x,y; bool z; for(int i=0;i<n;i++){ R[i]=1; P[i]=0; } 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]==0){ aux2[l]=0; } }}else{ for(int l=p1;l<=p3;l++){ if(P[l]==0){ aux2[l]=1; } } } y=tryCombination(aux2); if(x==i+1 && y==i+1){p1=p3+1;z=0;} else if(x!=i+1 && y==i){p2=p3;z=1;} else if(x==i+1 && y!=i+1){ p2=p3; z=1; } else if(x!=i+1 && y!=i+1){ p1=p3+1; z=0; } x=y; } if(aux2[p1]==1 && P[p1]==0){aux2[p1]=0;} else{R[p2]=aux2[p2];} y=tryCombination(aux2); if(x==i+1 && y==i+1){R[p2]=aux2[p2];P[p2]=i+1;} else if(x!=i+1 && y==i){R[p1]=aux2[p1];P[p1]=i+1;} else if(x==i+1 && y!=i+1){if(aux2[p1]==1){aux2[p1]=0;} else{aux2[p1]=1;} R[p1]=aux2[p1];P[p1]=i+1; } else if(x!=i+1 && y!=i+1){if(aux2[p2]==1){aux2[p2]=0;} else{aux2[p2]=1;} R[p2]=aux2[p2]; P[p2]=i+1; } } 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...