제출 #591399

#제출 시각아이디문제언어결과실행 시간메모리
591399shrimb동굴 (IOI13_cave)C++17
100 / 100
535 ms720 KiB
#include "bits/stdc++.h" #include "cave.h" using namespace std; const int maxn = 5001; int S[maxn], D[maxn], Q[maxn]; // state door query void exploreCave(int n) { vector<int> buffer; for (int i = 0 ; i < n ; i++) { buffer.push_back(i); } for (int i = 0 ; i < n ; i++) { for (int j : buffer) Q[j] = 0; int T = tryCombination(Q) == i; int sz = n - i; int l = -1, r = sz - 1; while (r - l > 1) { int m = (l + r) / 2; for (int j = 0 ; j < sz ; j++) { Q[buffer[j]] = T ^ (j > m); } if (tryCombination(Q) != i) r = m; else l = m; } D[buffer[r]] = i; Q[buffer[r]] = S[buffer[r]] = T; buffer.erase(buffer.begin() + r); } 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...