132682025-01-07 11:27:38mateElágazás nélküli úton levő települések (50 pont)cpp17Hibás válasz 23/5028ms1332 KiB
#include <bits/stdc++.h>
using namespace std;

vector <vector <int>> graf;
vector <bool> jart;
int cnt = 0;
vector <int> csucsok;

void dfs(int csucs, bool level){
	if(jart[csucs]){
		level = 0;
		return;
	}
	if(!level){
		return;
	}
	jart[csucs] = 1;
	if(graf[csucs].size() <= 2){
		cnt++;
		level = 1;
	}else{
		level = 0;
		return;
	}

	for(int x : graf[csucs]){
		if(jart[x]){
			continue;
		}
		dfs(x, level);
		if(level){
			csucsok.push_back(x);
		}
	}
}

int main() {
	int n,m; cin >> n >> m;
	graf.resize(n+1);
	jart.resize(n+1,0);
	for(int i = 0; i < m; i++){
		int a,b; cin >> a >> b;
		graf[a].push_back(b);
		graf[b].push_back(a);
	}
	for(int i = 1; i <= n; i++){
		if(graf[i].size() == 1 && !jart[i]){
			dfs(i,1);
		}
	}
	cout << cnt << '\n';
	sort(csucsok.begin(),csucsok.end());
	for(int i = 0; i < cnt; i++){
		cout << csucsok[i] << ' ';
	}
	
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base23/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/028ms1332 KiB
3Hibás válasz0/21ms316 KiB
4Hibás válasz0/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Hibás válasz0/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/23ms316 KiB
9Elfogadva2/24ms564 KiB
10Elfogadva2/28ms568 KiB
11Elfogadva2/214ms616 KiB
12Elfogadva2/214ms816 KiB
13Hibás válasz0/32ms536 KiB
14Hibás válasz0/33ms500 KiB
15Hibás válasz0/34ms564 KiB
16Hibás válasz0/34ms564 KiB
17Hibás válasz0/312ms832 KiB
18Hibás válasz0/313ms820 KiB
19Hibás válasz0/316ms980 KiB
20Elfogadva3/327ms1288 KiB
21Elfogadva3/328ms1132 KiB
22Elfogadva3/328ms1160 KiB