#include<bits/stdc++.h>
using namespace std;
using ll=long long;
constexpr int N=17;
int n;
int a[N];
vector<int>g[N];
int val[N];
int tr=0;
void dfs(int v, int e){
for(const int&i:g[v])
if(i^e){
val[i]=val[v]^(1<<tr);
++tr;
dfs(i,v);
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin>>n;
for(int i=0,a,b;i<n;++i){
cin>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}
dfs(0,-1);
cout<<(1<<(n-1))<<'\n';
for(int mask=0;mask<(1<<n);++mask){
if(__builtin_parity(mask))continue;
for(int i=0;i<=n;++i)
cout<<(val[i]^mask)<<' ';
cout<<'\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |