82122024-01-12 19:48:35CsongiElágazás nélküli úton levő települések (50 pont)cpp17Hibás válasz 4/5029ms5564 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <math.h>
#include <unordered_set>
#include <queue>
#include <string>
#include <bits/stdc++.h>

using namespace std;

int main()
{
	int n, m;
	cin >> n >> m;
	vector<vector<int>> adj(n+1);
	for (int i = 1; i <= m; i++)
	{
		int a, b;
		cin >> a >> b;
		adj[a].push_back(b);
		adj[b].push_back(a);
	}
	unordered_set<int> zsakok;
	for (int i = 0; i < adj.size(); i++)
	{
		if (adj[i].size() == 1)
			zsakok.insert(i);
	}
	vector<int> zsakfalu(zsakok.begin(), zsakok.end());
	int megnezve = 0;
	queue<int> sor;
	vector<int> megold(0);
	for (int i = 0; i < zsakfalu.size(); i++)
	{
		sor.push(zsakfalu[i]);
		vector<bool> check(n + 1);
		vector<int> path(0);
		path.push_back(zsakfalu[i]);
		bool vege = false;
		while (sor.size() != 0)
		{
			int most = sor.front();
			sor.pop();
			//cout << most << " ";
			for (int x : adj[most])
			{
				if (!check[x] && x != most && !vege && adj[x].size() < 3)
				{
					sor.push(x);
					path.push_back(x);
					check[x] = true;
					check[most] = true;
				}
				else if (!check[x] && adj[x].size() <= 3 && !vege)
				{
					sor.push(x);
					path.push_back(x);
					check[x] = true;
					check[most] = true;
					vege = true;
					break;
				}
			}
			megnezve++;
		}
		for (int x : path)
		{
			megold.push_back(x);
		}
	}
	cout << megold.size() - zsakfalu.size() << endl;
	sort(megold.begin(), megold.end());
	for (int y : megold)
	{
		if (find(zsakfalu.begin(), zsakfalu.end(), y) == zsakfalu.end())
		{
			cout << y << " ";
		}
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/50
1Elfogadva0/03ms1816 KiB
2Hibás válasz0/028ms3916 KiB
3Hibás válasz0/23ms2264 KiB
4Hibás válasz0/23ms2428 KiB
5Elfogadva2/23ms2668 KiB
6Hibás válasz0/23ms2924 KiB
7Elfogadva2/23ms3032 KiB
8Hibás válasz0/24ms3044 KiB
9Hibás válasz0/26ms3480 KiB
10Hibás válasz0/28ms3796 KiB
11Hibás válasz0/214ms4184 KiB
12Hibás válasz0/216ms4508 KiB
13Hibás válasz0/34ms3552 KiB
14Hibás válasz0/36ms3804 KiB
15Hibás válasz0/36ms3820 KiB
16Hibás válasz0/38ms4096 KiB
17Hibás válasz0/314ms4368 KiB
18Hibás válasz0/314ms4384 KiB
19Hibás válasz0/317ms4832 KiB
20Hibás válasz0/328ms4996 KiB
21Hibás válasz0/328ms5564 KiB
22Hibás válasz0/329ms5524 KiB