제출 #1272193

#제출 시각아이디문제언어결과실행 시간메모리
1272193IBoryHiperkocka (COCI21_hiperkocka)C++20
0 / 110
2 ms332 KiB
#include <bits/stdc++.h> #define pii pair<int, int> using namespace std; const int MAX = 18; vector<int> G[MAX], T[1 << MAX]; int S[MAX]; void DFS(int cur1, int prev, int cur2) { S[cur1] = cur2; for (int i = 0, j = 0; i < G[cur1].size(); ++i, ++j) { int next1 = G[cur1][i]; if (next1 == prev) continue; if (S[next1] == T[cur2][j]) j++; int next2 = T[cur2][j]; DFS(next1, cur1, next2); } } int main() { ios::sync_with_stdio(0); cin.tie(0); int N; cin >> N; for (int i = 0; i < N; ++i) { int a, b; cin >> a >> b; G[a].push_back(b); G[b].push_back(a); } for (int i = 0; i < (1 << N); ++i) for (int k = 0; k < N; ++k) T[i].push_back(i ^ (1 << k)); memset(S, -1, sizeof(S)); DFS(0, 0, 0); int Z = 1 << (N - 1); cout << Z << '\n'; for (int b = 0; b < (1 << N); ++b) { if (__builtin_popcount(b) & 1) continue; for (int i = 0; i <= N; ++i) cout << (S[i] ^ b) << ' '; cout << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...