제출 #1282658

#제출 시각아이디문제언어결과실행 시간메모리
1282658stefanneaguHiperkocka (COCI21_hiperkocka)C++20
0 / 110
1 ms336 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int nmax = 1e5 + 1; int grad[nmax]; bool f[nmax]; int32_t main() { int n; cin >> n; for (int i = 1; i <= n; i++) { int a, b; cin >> a >> b; grad[a]++, grad[b]++; } vector<int> lf; int root = -1; for (int i = 0; i <= n; i++) { if (grad[i] == 1) { lf.push_back(i); } else { root = i; } } if (lf.size() == n + 1) { assert(n == 1); root = 1; lf.pop_back(); } cout << (1 << (n - 1)) << '\n'; for (int i = 0; i < (1 << n); i++) { if (!f[i]) { f[i] = 1; vector<int> ord(n + 1); ord[root] = i; for (int bit = 0; bit < n; bit++) { // sa ramana doar bit ul bit int xr = (i ^ (1 << bit)); ord[lf[bit]] = xr; f[xr] = 1; } for (auto it : ord) { cout << it << " "; } cout << '\n'; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...