Submission #1271949

#TimeUsernameProblemLanguageResultExecution timeMemory
1271949algoproclubHiperkocka (COCI21_hiperkocka)C++20
0 / 110
0 ms332 KiB
// 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 timeMemoryGrader output
Fetching results...