제출 #587354

#제출 시각아이디문제언어결과실행 시간메모리
587354APROHACK동굴 (IOI13_cave)C++14
0 / 100
155 ms396 KiB
#include<bits/stdc++.h> #include "cave.h" #define PB push_back #define ll long long #define F first #define S second using namespace std; void exploreCave(int N) { vector<int>ceros; vector<int>combinacioncorrecta; vector<int> abrepuerta; ceros.resize(N); combinacioncorrecta.resize(N); abrepuerta.resize(N); for(int i = 0 ; i < N ; i++){ ceros[i]=0; combinacioncorrecta[i]=-1; } int good, bad; for(int i = 0 ; i < N ; i ++){ for(int j = 0 ; j < N ; j ++){ if(combinacioncorrecta[j]!=-1)ceros[j]=combinacioncorrecta[j]; else ceros[j]=0; } if(tryCombination(ceros.data())>i){//está abierta good=0, bad=1; }else{ good=1, bad=0; } int li=0, ls = N-1, mid; mid=(li+ls)/2; while(mid!=li && li!=ls){ mid=(li+ls)/2; for(int j = li ; j<= mid ; j++)if(combinacioncorrecta[j]==-1)ceros[j]=good; for(int j = mid+1 ; j<= ls ; j++)if(combinacioncorrecta[j]==-1)ceros[j]=bad; if(tryCombination(ceros.data())>i){ ls=mid; }else{ li=mid+1; } } combinacioncorrecta[li]=good; abrepuerta[li]=i; } answer(combinacioncorrecta.data(), abrepuerta.data()); }
#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...