135012025-01-08 08:52:12RRoliElágazás nélküli úton levő települések (50 pont)cpp17Runtime error 17/5039ms32000 KiB
#include <bits/stdc++.h>
using namespace std;

int n, m, fok[10001], sor[10001];
bool szom[10001][10001];

int aux[10001];
void msort(int e1, int u2) {
	int u1 = (e1+u2)/2, e2 = u1+1;
	if(e1 != u1) msort(e1, u1);
	if(e2 != u2) msort(e2, u2);
	int l = e1, r = e2, p = e1;
	while(p <= u2) {
		if(r > u2 || (sor[l] <= sor[r] && l <= u1)) {
			aux[p] = sor[l];
			l++;
		} else {
			aux[p] = sor[r];
			r++;
		}
		p++;
	}
	for(int i = e1; i <= u2; i++) sor[i] = aux[i];
}

int main() {
	cin >> n >> m;
	for(int i = 0; i < m; i++) {
		int a, b;
		cin >> a >> b;
		szom[a][b] = true;
		szom[b][a] = true;
		fok[a]++;
		fok[b]++;
	}

	int e = 0, u = 0, kezd = 0;
	bool L[10001], tovabb[10001];

	for(int i = 1; i <= n; i++) {
		if(fok[i] == 1) {
			sor[u] = i;
			u++;
			L[i] = true;
			kezd++;
		} else {
			L[i] = false;
		}
		tovabb[i] = true;
	}

	while(e <= u && u != 0) {
		if(tovabb[sor[e]]) {
			for(int i = 1; i <= n; i++) {
				if(szom[sor[e]][i] && !L[i]) {
					sor[u] = i;
					L[i] = true;
					u++;
					if(fok[i] != 2) tovabb[i] = false; 
				}
			}
		}
		e++;
	}

	cout << u-kezd << '\n';
	if(u-kezd > 1) msort(kezd, u-1);
	for(int i = kezd; i < u; i++) cout << sor[i] << ' ';

	return 0;
}
SubtaskSumTestVerdictTimeMemory
base17/50
1Accepted0/01ms508 KiB
2Runtime error0/028ms32000 KiB
3Wrong answer0/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Wrong answer0/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/26ms4980 KiB
9Accepted2/212ms11004 KiB
10Accepted2/223ms18448 KiB
11Accepted2/232ms29000 KiB
12Runtime error0/239ms32000 KiB
13Accepted3/36ms4660 KiB
14Wrong answer0/312ms10220 KiB
15Wrong answer0/316ms15924 KiB
16Wrong answer0/339ms24376 KiB
17Runtime error0/328ms32000 KiB
18Runtime error0/328ms32000 KiB
19Runtime error0/334ms32000 KiB
20Runtime error0/334ms32000 KiB
21Runtime error0/328ms32000 KiB
22Runtime error0/328ms32000 KiB