9029 2024. 02. 12 12:15:08 Ignác Parti (75 pont) cpp17 Hibás válasz 72/75 74ms 7404 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n;
	cin >> n;
	if (n < 3) {
		cout << 0;
		return 0;
	}
	vector<int> db(n + 1);
	vector<pair<int, int>> to(n + 1);
	for (int i = 1; i <= n; i++) {
		int a, b;
		cin >> a >> b;
		db[a]++;
		db[b]++;
		to[i].first = a;
		to[i].second = b;
	}

	queue<int> out;
	for (int i = 1; i <= n; i++) {
		if (db[i] < 2) {
			out.push(i);
			db[i] = -1;
		}
	}

	while (out.size() > 0) {
		//cout << out.front() << "\n";
		db[to[out.front()].first]--;
		db[to[out.front()].second]--;
		if (db[to[out.front()].first] < 2 && db[to[out.front()].first] > -1) {
			out.push(to[out.front()].first);
			db[to[out.front()].first] = -1;
		}
		if (db[to[out.front()].second] < 2 && db[to[out.front()].second] > -1) {
			out.push(to[out.front()].second);
			db[to[out.front()].second] = -1;
		}
		out.pop();
	}

	string ans;
	int cnt = 0;
	for (int i = 1; i <= n; i++) {
		if (db[i] > -1) {
			ans += to_string(i) + " ";
			cnt++;
		}
	}

	cout << cnt << "\n" << ans;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 72/75
1 Elfogadva 0/0 3ms 1812 KiB
2 Elfogadva 0/0 37ms 3976 KiB
3 Elfogadva 3/3 3ms 2436 KiB
4 Elfogadva 3/3 3ms 2644 KiB
5 Hibás válasz 0/3 3ms 2828 KiB
6 Elfogadva 3/3 3ms 2720 KiB
7 Elfogadva 3/3 3ms 2740 KiB
8 Elfogadva 4/4 3ms 2980 KiB
9 Elfogadva 4/4 3ms 3076 KiB
10 Elfogadva 4/4 4ms 3292 KiB
11 Elfogadva 4/4 3ms 3260 KiB
12 Elfogadva 4/4 4ms 3280 KiB
13 Elfogadva 4/4 4ms 3552 KiB
14 Elfogadva 4/4 4ms 3632 KiB
15 Elfogadva 4/4 37ms 5224 KiB
16 Elfogadva 4/4 43ms 5716 KiB
17 Elfogadva 4/4 52ms 6312 KiB
18 Elfogadva 4/4 59ms 6328 KiB
19 Elfogadva 4/4 65ms 6676 KiB
20 Elfogadva 4/4 71ms 7264 KiB
21 Elfogadva 4/4 74ms 7404 KiB
22 Elfogadva 4/4 3ms 4140 KiB