235052026-01-23 22:04:51matemakaiHálózati biztonság (50)cpp17Accepted 50/50266ms12040 KiB
#include <bits/stdc++.h>
using namespace std;

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

	set<int> s;
	queue<int> update;

	for (int i = 0; i < n; ++i) {
		s.insert(i);
		if (deg[i] < k) {
			update.push(i);
		}
	}

	while (!update.empty()) {
		int node = update.front();
		update.pop();

		if (!s.count(node)) {
			continue;
		}

		if (deg[node] < k) {
			s.erase(node);
			for (auto next : adj[node]) {
				--deg[next];
				if (s.count(next)) {
					update.push(next);
				}
			}
		}
	}

	cout << s.size() << endl;
	for (auto a : s) {
		cout << a + 1 << " ";
	}
	cout << endl;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms508 KiB
2Accepted0/0137ms6196 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms316 KiB
10Accepted2/27ms552 KiB
11Accepted2/23ms564 KiB
12Accepted2/26ms756 KiB
13Accepted3/32ms564 KiB
14Accepted3/38ms1332 KiB
15Accepted3/314ms2284 KiB
16Accepted3/3141ms4404 KiB
17Accepted3/39ms1076 KiB
18Accepted3/327ms4572 KiB
19Accepted3/3170ms10840 KiB
20Accepted3/3266ms12040 KiB
21Accepted3/3192ms11072 KiB
22Accepted3/31ms316 KiB