제출 #971350

#제출 시각아이디문제언어결과실행 시간메모리
971350Acanikolic동굴 (IOI13_cave)C++14
51 / 100
168 ms604 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; void exploreCave(int N) { int S[N],D[N]; for(int i = 0; i < N; i++) { S[i] = 0; D[i] = -1; } for(int Q = 0; Q < N; Q++) { int X = tryCombination(S); int l = 0, r = N - 1,ans = -1; while(l <= r) { int mid = (l + r) / 2; for(int i = l; i <= mid; i++) if(D[i] == -1) S[i] ^= 1; int Y = tryCombination(S); for(int i = l; i <= mid; i++) if(D[i] == -1) S[i] ^= 1; if(X != Y) { ans = mid; r = mid - 1; }else { l = mid + 1; } } assert(ans != -1); D[ans] = X; S[ans] ^= 1; if(X == -1) { D[ans] = tryCombination(S); S[ans] ^= 1; } else if(tryCombination(S) < X && tryCombination(S) != -1) { D[ans] = tryCombination(S); S[ans] ^= 1; } } answer(S,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...