제출 #500290

#제출 시각아이디문제언어결과실행 시간메모리
500290sidon자동 인형 (IOI18_doll)C++17
100 / 100
123 ms11868 KiB
#include <bits/stdc++.h> using namespace std; #include "doll.h" vector<int> s, x(3e5), y(3e5), z(3e5); int v, b = 1, n; int dfs(int l, int r) { if(l >= n) return -1; if(r - l > 1) { int m = (l + r) / 2, u = v++; y[u] = dfs(l, m); x[u] = dfs(m, r); return -u-1; } return 1; } void create_circuit(int M, vector<int> A) { s.assign(M+1, -1); A.push_back(0); n = size(A); while(b<n) b += b; dfs(0, b); for(int &i : A) { int u = 0; while(u >= 0) { z[u] ^= 1; int &w = z[u] ? x[u] : y[u]; if(w >= 0) w = i, u = -1; else u = -1-w; } } x.resize(v); y.resize(v); answer(s, 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...