169012025-05-15 17:51:12algoproKét csoportcpp17Hibás válasz 33/100402ms26824 KiB
// UUID: 6686fc5e-dc66-45a7-ab10-c2046dd0a630
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector<vector<int>> e(n + 1);
	for (int i = 1; i <= n; i++) {
		int x;
		cin >> x;
		while (x != 0) {
			e[i].push_back(x);
			cin >> x;
		}
	}

	vector<int> d(n + 1, -1);
	vector<vector<int>> f(n + 1);
	queue<int> q;
	for (int z = 1; z <= n; z++) {
		if (d[z] != -1) continue;
		q.push(z);
		d[z] = 0;
		while (!q.empty()) {
			int i = q.front();
			q.pop();
			for (int j : e[i]) {
				if (d[j] == -1) {
					q.push(j);
					d[j] = d[i] + 1;
				}

				if (d[j] == d[i]) {
					f[i].push_back(j);
					f[j].push_back(i);
				}
			}
		}
	}

	vector<bool> vis(n + 1);
	vector<int> ans;
	for (int i = 1; i <= n; i++) {
		if (f[i].size() == 0 && d[i] % 2) ans.push_back(i);
		if (f[i].size() == 1 && !vis[i]) {
			bool b = true;
			int j = i;
			do {
				if (b) ans.push_back(j);
				b = !b;
				vis[j] = true;
				if (vis[f[j][0]]) j = f[j][1];
				else j = f[j][0];
			} while (f[j].size() == 2);

			vis[j] = true;
			if (b) ans.push_back(j);
		}
	}

	cout << ans.size() << "\n";
	for (int x : ans) cout << x << " ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base33/100
1Elfogadva0/01ms316 KiB
2Hibás válasz0/0112ms9148 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Hibás válasz0/21ms328 KiB
9Elfogadva3/32ms532 KiB
10Hibás válasz0/32ms316 KiB
11Hibás válasz0/32ms512 KiB
12Elfogadva3/312ms1088 KiB
13Hibás válasz0/313ms1332 KiB
14Hibás válasz0/314ms1180 KiB
15Elfogadva6/6112ms9136 KiB
16Hibás válasz0/7128ms9624 KiB
17Hibás válasz0/7145ms10036 KiB
18Elfogadva6/6238ms17936 KiB
19Hibás válasz0/6266ms18864 KiB
20Hibás válasz0/6298ms19636 KiB
21Időlimit túllépés0/6354ms26824 KiB
22Időlimit túllépés0/7384ms26676 KiB
23Időlimit túllépés0/7379ms16716 KiB
24Időlimit túllépés0/7402ms25140 KiB