135012025-01-08 08:52:12RRoliElágazás nélküli úton levő települések (50 pont)cpp17Futási hiba 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base17/50
1Elfogadva0/01ms508 KiB
2Futási hiba0/028ms32000 KiB
3Hibás válasz0/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Hibás válasz0/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/26ms4980 KiB
9Elfogadva2/212ms11004 KiB
10Elfogadva2/223ms18448 KiB
11Elfogadva2/232ms29000 KiB
12Futási hiba0/239ms32000 KiB
13Elfogadva3/36ms4660 KiB
14Hibás válasz0/312ms10220 KiB
15Hibás válasz0/316ms15924 KiB
16Hibás válasz0/339ms24376 KiB
17Futási hiba0/328ms32000 KiB
18Futási hiba0/328ms32000 KiB
19Futási hiba0/334ms32000 KiB
20Futási hiba0/334ms32000 KiB
21Futási hiba0/328ms32000 KiB
22Futási hiba0/328ms32000 KiB