제출 #333020

#제출 시각아이디문제언어결과실행 시간메모리
333020Cantfindme동굴 (IOI13_cave)C++17
0 / 100
2 ms492 KiB
#include <bits/stdc++.h> using namespace std; #include "cave.h" int currentd,high,low,mid; int dstate,prevs,result; void exploreCave(int N) { int D[N], A[N]; bool known[N]; currentd = 0; high = N; low = -1; memset(known,0,sizeof known); for (int i =0;i<N;i++) D[i] = -1; for (int i =0;i<N;i++) A[i] = 0; result = tryCombination(A); for (;currentd < N;currentd++) { //1 is open 0 is close if (result == -1 or result > currentd) { prevs = 1; } while (high - low > 1) { mid = (high+low)/2; //< or <=? for (int i = max(0,low);i<=mid;i++) { if (known[i]) continue; A[i] = !A[i]; } result = tryCombination(A); if (result == -1 or result > currentd) dstate = 1; else dstate = 0; if (dstate == prevs) low = mid; else high = mid; prevs = dstate; } known[high] = true; if (!prevs) A[high] = !A[high]; D[high] = currentd; } answer(A,D); }
#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...