Submission #1305683

#TimeUsernameProblemLanguageResultExecution timeMemory
1305683hosh동굴 (IOI13_cave)C++20
12 / 100
155 ms592 KiB
#include "cave.h" #include <iostream> #include <vector> using namespace std; void exploreCave(int N) { vector<int> S(N, 0); vector<int> D(N, -1); vector<int> A(N, 0); vector<int> B; for (int door = 0; door < N; door++) { for (int i = 0; i < N; i++) { if (A[i] == 0) { S[i] = 1; } } int trt = tryCombination(S.data()); int doorv; if (trt == -1 || trt > door) { doorv = 1; } else { doorv = 0; } B.clear(); for (int i = 0; i < N; i++) { if (A[i] == 0) { B.push_back(i); } } while (B.size() > 1) { int half = B.size() / 2; for (int i = 0; i < B.size(); i++) { if (i < half) { S[B[i]] = doorv; } else { S[B[i]] = 1 - doorv; } } trt = tryCombination(S.data()); if (trt == -1 || trt > door) { B.resize(half); } else { B.erase(B.begin(), B.begin() + half); } } int sw = B[0]; A[sw] = 1; S[sw] = doorv; D[door] = sw; } answer(S.data(), D.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...