// Source: https://usaco.guide/general/io
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> G;
int n;
vector<int> ans;
void dfs(int v, int p){
for(int x : G[v]){
if(x == p) continue;
ans[x] = ans[v] ^ (1 << (x-1));
dfs(x, v);
}
}
void kiir(int i){
ans.assign(n+1, 0);
ans[0] = i;
dfs(0, 0);
for(int x : ans) cout << x << " ";
cout << "\n";
}
int main() {
cin >> n;
G.resize(n+1);
for(int i=0; i<n; i++){
int a, b; cin >> a >> b;
G[a].push_back(b);
G[b].push_back(a);
}
cout << (1 << (n-1)) << endl;
for(int i=0; i<(1 << n); i++){
if(__builtin_popcount(i) % 2 == 0){
kiir(i);
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |