제출 #630458

#제출 시각아이디문제언어결과실행 시간메모리
630458abeker자동 인형 (IOI18_doll)C++17
37 / 100
121 ms11796 KiB
#include <bits/stdc++.h> #include "doll.h" using namespace std; void create_circuit(int M, vector <int> a) { int N = a.size(), offset = 1; while (offset <= N) offset *= 2; int curr = 1, cnt = 0; vector <int> state(offset); vector <int> pos(offset); while (cnt < offset) if (curr < offset) { int nxt = 2 * curr + state[curr]; state[curr] ^= 1; curr = nxt; } else { pos[curr - offset] = cnt++; curr = 1; } vector <int> x(offset - 1), y(offset - 1); for (int i = 1; i < offset; i++) { auto get_next = [&](int node) { if (node < offset) return -node; node = pos[node - offset]; if (node < N) return a[node]; return node == offset - 1 ? 0 : -1; }; x[i - 1] = get_next(2 * i); y[i - 1] = get_next(2 * i + 1); } answer(vector <int> (M + 1, -1), x, y); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...