#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
	int n;
	cin >> n;
	vector<ll> a(n), b(n);
	for (int i = 0; i < n; ++i) {
		cin >> a[i] >> b[i];
	}
	vector<int> id(n);
	iota(begin(id), end(id), 0);
	set<ll> p;
	do {
		ll x = a[id[0]];
		ll y = b[id[0]];
		bool ok = true;
		for (int i = 1; ok && i < n; ++i) {
			int j = id[i];
			if (x == a[j]) {
				y += b[j];
			} else if (x == b[j]) {
				y += a[j];
			} else if (y == a[j]) {
				x += b[j];
			} else if (y == b[j]) {
				x += a[j];
			} else {
				ok = false;
			}
		}
		if (ok) {
			p.insert(min(x, y));
		}
	} while (next_permutation(begin(id), end(id)));
	cout << p.size() << endl;
	for (auto& u : p) {
		cout << u << "\n";
	}
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |