이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "doll.h"
template <class T> using Vec = std::vector<T>;
void create_circuit(int M, Vec<int> A) {
const int N = (int) A.size();
int H = 0;
while ((1 << H) <= N) {
H += 1;
}
const int S = 1 << H;
Vec<Vec<int>> graph(S);
for (int i = S / 2 - 1; i > 0; --i) {
graph[i].push_back(-(2 * i));
graph[i].push_back(-(2 * i + 1));
}
for (int i = 0; i < S; ++i) {
int k = 1;
for (int x = i, y = 0; y < H - 1; x /= 2, y += 1) {
k = 2 * k + (x & 1);
}
const int dst = (i < N ? A[i] : (i + 1 == S ? 0 : -1));
graph[k].push_back(dst);
}
Vec<int> X(S - 1), Y(S - 1);
for (int i = 0; i < S - 1; ++i) {
X[i] = graph[i + 1][0];
Y[i] = graph[i + 1][1];
}
answer(Vec<int>(M + 1, -1), X, Y);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |