제출 #941406

#제출 시각아이디문제언어결과실행 시간메모리
941406tset동굴 (IOI13_cave)C++14
0 / 100
393 ms600 KiB
#include<bits/stdc++.h> #include "cave.h" using namespace std; vector<int> posLevierOpt, corresp; bool test(int deb, int fin, int porteAOuvrir, int N) { int tabTest[N]; for(int i=0; i<N; i++) { if(posLevierOpt[i]!= -1) tabTest[i] = posLevierOpt[i]; else if(i>= deb && i <= fin) tabTest[i] = 1; else tabTest[i] = 0; } int lastDoorOpen = tryCombination(tabTest); if(lastDoorOpen == -1 || lastDoorOpen >= porteAOuvrir) return true; return false; } void exploreCave(int N) { posLevierOpt.assign(N, -1); corresp.assign(N, -1); for(int iDoor = 0; iDoor< N; iDoor++) { bool stateDoorInit = test(0, N-1, iDoor, N); int deb = 0; int fin = N-1; while (deb < fin) { int mid = (deb + fin)/2; if(test(deb, mid, iDoor, N)!=stateDoorInit) fin = mid; else deb = mid +1; } if(stateDoorInit) posLevierOpt[deb] = 0; posLevierOpt[deb] = 1; corresp[deb] = iDoor; } int answer1[N], answer2[N]; for(int i=0; i< N;i++) answer1[i] = posLevierOpt[i]; for(int i=0; i< N;i++) answer2[i] = corresp[i]; answer(answer1, answer2); }
#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...