// UUID: 3ea1404d-e294-41e2-97e9-cca14aaaef7e
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> g(17);
bool done[17];
int e = 0;
vector<int> ans = {0};
void dfs(int u, int r) {
done[u] = true;
for (int v : g[u]) {
if (!done[v]) {
int k = (r ^ (1 << e));
ans.push_back(k);
e ++;
dfs(v, k);
}
}
return;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
for (int i = 0; i < n; i ++) {
int u, v;
cin >> u >> v;
g[u].push_back(v);
}
dfs(0, 0);
cout << (1 << (n - 1)) << "\n";
for (int i = 0; i < (1 << n); i ++) {
bitset<17> bs(i);
if (bs.count() % 2 == 0) {
for (int c : ans) {
cout << (c ^ i) << " ";
}
cout << "\n";
}
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |