92212024-02-18 18:52:34xxxA lehető legkevesebb metróval utazás (40 pont)cpp14Futási hiba 32/40145ms62932 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL);
	int n, m, ind, erk;
	cin >> n >> m >> ind >> erk;
	vector<vector<int> > megall(m+1);
	vector<vector<int> > adj(n+1);
	for(int i = 0; i < n; i++) {
		int db;
		cin >> db;
		for(int j = 0; j < db; j++) {
			int x;
			cin >> x;
			megall[x].push_back(i);
		}
	}

	

	for(int i = 1; i <= m; i++) {
		if (megall[i].size() > 1) {
			for(int j = 0; j < megall[i].size(); j++) {
				for(int k = j+1; k < megall[i].size(); k++) {
					adj[megall[i][j]].push_back(megall[i][k]);
					adj[megall[i][k]].push_back(megall[i][j]);
				}
			}
		}
	}
	queue<int> q;
	vector<int> tav(n+1, -1), parent(n+1, -1);

	for(int i : megall[ind]) {
		q.push(i);
		tav[i] = 1;
	}

	while(!q.empty()) {
		int u = q.front();
		q.pop();
		
		for(auto v : adj[u]) {			
			if (tav[v] == -1) {
				tav[v] = tav[u]+1;
				parent[v] = u;
				q.push(v);
			}
		}
	}
	

	int ans = INT_MAX, mini = 0;
	for(int i : megall[erk]) {
		if (tav[i] == -1) {
			cout << "-1\n";
			return 0;
		}
		if (ans > tav[i]) {
			ans = tav[i];
			mini = i;
		}
	}
	
	cout << ans << '\n';
	

	vector<int> ansv;
	
	while(ans--) {
		ansv.push_back(mini);
		mini = parent[mini];
	}
	reverse(ansv.begin(), ansv.end());
	for(int x : ansv) {
		cout << x+1 << ' ';
	}

	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base32/40
1Elfogadva0/03ms1832 KiB
2Elfogadva0/04ms3352 KiB
3Elfogadva2/23ms2296 KiB
4Elfogadva2/23ms2512 KiB
5Elfogadva2/23ms3044 KiB
6Elfogadva2/23ms2984 KiB
7Elfogadva2/23ms3488 KiB
8Elfogadva2/23ms3652 KiB
9Elfogadva2/24ms3960 KiB
10Elfogadva2/24ms4168 KiB
11Elfogadva2/23ms3808 KiB
12Elfogadva2/24ms4792 KiB
13Elfogadva2/24ms5056 KiB
14Elfogadva2/24ms5012 KiB
15Futási hiba0/2143ms62932 KiB
16Futási hiba0/2142ms62812 KiB
17Futási hiba0/2137ms62580 KiB
18Futási hiba0/2145ms62424 KiB
19Elfogadva2/24ms5348 KiB
20Elfogadva2/24ms5980 KiB
21Elfogadva2/24ms5640 KiB
22Elfogadva2/24ms6264 KiB