135602025-01-08 09:52:42Leventusz09Elágazás nélküli úton levő települések (50 pont)cpp17Hibás válasz 6/5028ms1332 KiB
#include <iostream>
#include <vector>

#define nMax 10000

using namespace std;

vector<int> et[nMax];  // et[0] => élek a 0. vársoból/-ba
bool zsákfalvak[nMax]; 
bool ty[nMax];         // számlált városok

vector<int> ol;

void appendZsákfalvak(int index) {
	bool zsákfalu = zsákfalvak[index];
	ty[index] = 1;

	if (zsákfalu) {
		if(!ty[et[index][0]]) appendZsákfalvak(et[index][0]);

		return;
	}

	ol.push_back(index);

	if (et[index].size() == 2) {
		if(!ty[et[index][0]]) appendZsákfalvak(et[index][0]);
		if(!ty[et[index][1]]) appendZsákfalvak(et[index][1]);
	}
}

int main() {
	int N, M;
	cin >> N >> M;

	for (int i = 0, a, b; i < M; i++) {
		cin >> a >> b;
		a--; b--;
		et[a].push_back(b);
		et[b].push_back(a);
	}

	for (int i = 0; i < N; i++) {
		if (et[i].size() != 1) continue;
		zsákfalvak[i] = 1;
		appendZsákfalvak(i);
	}

	cout << ol.size() << "\n";
	for (int& i : ol) cout << i + 1 << " ";


	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Elfogadva0/01ms564 KiB
2Hibás válasz0/028ms1332 KiB
3Hibás válasz0/21ms564 KiB
4Elfogadva2/21ms564 KiB
5Elfogadva2/21ms564 KiB
6Hibás válasz0/21ms564 KiB
7Hibás válasz0/21ms564 KiB
8Hibás válasz0/23ms568 KiB
9Hibás válasz0/24ms564 KiB
10Hibás válasz0/28ms812 KiB
11Elfogadva2/214ms864 KiB
12Hibás válasz0/214ms816 KiB
13Hibás válasz0/32ms644 KiB
14Hibás válasz0/34ms564 KiB
15Hibás válasz0/34ms684 KiB
16Hibás válasz0/34ms564 KiB
17Hibás válasz0/312ms832 KiB
18Hibás válasz0/313ms968 KiB
19Hibás válasz0/317ms968 KiB
20Hibás válasz0/328ms1300 KiB
21Hibás válasz0/328ms1332 KiB
22Hibás válasz0/328ms1288 KiB