234762026-01-23 16:45:25matemakaiParti (75 pont)cpp17Elfogadva 75/75193ms9304 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector<pair<int, int>> adj(n);
	for (int i = 0; i < n; ++i) {
		int a, b;
		cin >> a >> b;
		--a;
		--b;
		adj[i] = {a, b};
	}

	vector<int> indegree(n);

	for (int i = 0; i < n; ++i) {
		++indegree[adj[i].first];
		++indegree[adj[i].second];
	}

	set<int> nums, update;

	for (int i = 0; i < n; ++i) {
		nums.insert(i);
		if (indegree[i] < 2) {
			update.insert(i);
		}
	}

	while (!update.empty()) {
		int node = *(update.begin());
		update.erase(update.begin());

		if (nums.count(node) && indegree[node] < 2) {
			nums.erase(node);
			--indegree[adj[node].first];
			--indegree[adj[node].second];
			if (nums.count(adj[node].first)) {
				update.insert(adj[node].first);
			}
			if (nums.count(adj[node].second)) {
				update.insert(adj[node].second);
			}
		}
	}

	cout << nums.size() << endl;
	for (auto a : nums) {
		cout << a + 1 << " ";
	}
	cout << endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base75/75
1Elfogadva0/01ms316 KiB
2Elfogadva0/090ms4912 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms312 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva4/42ms508 KiB
9Elfogadva4/42ms316 KiB
10Elfogadva4/43ms316 KiB
11Elfogadva4/42ms316 KiB
12Elfogadva4/44ms436 KiB
13Elfogadva4/44ms564 KiB
14Elfogadva4/46ms564 KiB
15Elfogadva4/486ms4684 KiB
16Elfogadva4/4108ms5856 KiB
17Elfogadva4/4127ms6576 KiB
18Elfogadva4/4156ms7620 KiB
19Elfogadva4/4167ms8244 KiB
20Elfogadva4/4192ms9304 KiB
21Elfogadva4/4193ms9248 KiB
22Elfogadva4/41ms316 KiB