2682021-05-17 11:26:08kidesoElfogáscpp11Hibás válasz 0/5052ms9044 KiB
#include <iostream>
#include <vector>
#include <queue>

using namespace std;

struct adat
{
	bool lat;
	vector <int> sz;
};

vector <adat> x;
queue <int> y;
int N, M, U, V;

int main()
{
	cin >> N >> M >> U >> V;
	x.resize(N + 1);

	int a, b;
	for (int i = 1; i <= M; ++i)
	{
		cin >> a >> b;
		x[a].sz.push_back(b);
		x[b].sz.push_back(a);
	}

	y.push(V);
	int db = 0;
	x[V].lat = true;
	while (!y.empty())
	{
		++db;
		int akt = y.front();
		y.pop();

		if (akt != U)
		{
			for(auto e:x[akt].sz)
				if (!x[e].lat)
				{
					x[e].lat = true;
					y.push(e);
				}
		}
	}

	x[U].lat = false;
	cout << db - 1 << '\n';
	for (int i = 1; i <= N; ++i)
		if (x[i].lat) cout << i << ' ';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/02ms1740 KiB
2Hibás válasz0/08ms2636 KiB
3Hibás válasz0/21ms1944 KiB
4Hibás válasz0/23ms1968 KiB
5Hibás válasz0/22ms1988 KiB
6Hibás válasz0/22ms2008 KiB
7Hibás válasz0/32ms2024 KiB
8Hibás válasz0/32ms2040 KiB
9Hibás válasz0/34ms2252 KiB
10Hibás válasz0/34ms2296 KiB
11Hibás válasz0/37ms2596 KiB
12Hibás válasz0/38ms2864 KiB
13Hibás válasz0/38ms2972 KiB
14Hibás válasz0/38ms3200 KiB
15Hibás válasz0/38ms3300 KiB
16Hibás válasz0/335ms5100 KiB
17Hibás válasz0/335ms5912 KiB
18Hibás válasz0/335ms6612 KiB
19Hibás válasz0/335ms7180 KiB
20Hibás válasz0/352ms9044 KiB