43362023-03-25 15:36:38szilHálózati átvitelcpp14Hibás válasz 6/5018ms6252 KiB
#include <bits/stdc++.h>
 
using ll = long long;
using namespace std;

const int MAXN = 100001;

struct Edge {
	int a, b, w;
};

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	
	int n, m, k, h;
	cin >> n >> m >> k >> h;

	vector<Edge> edges;
	for (int i = 0; i < m; i++) {
		Edge e;
		cin >> e.a >> e.b >> e.w;
		edges.push_back(e);
	}

	vector<int> d(MAXN, INT_MIN);
	d[k] = INT_MAX;
	for (int i = 0; i < h; i++) {
		for (Edge e : edges) {
			if (d[e.a] != INT_MIN)
				d[e.b] = max(d[e.b], min(d[e.a],e.w));
			if (d[e.b] != INT_MIN)
				d[e.a] = max(d[e.a], min(d[e.b],e.w));
		}
	}

	for (int i = 1; i <= n; i++) {
		if (d[i] < -1000000) {
			cout << "-1 ";
		} else {
			cout << (i==k?0:d[i]) << " ";
		}
	}
	cout << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Elfogadva0/03ms2796 KiB
2Hibás válasz0/03ms3072 KiB
3Hibás válasz0/13ms3024 KiB
4Hibás válasz0/13ms3152 KiB
5Hibás válasz0/23ms3356 KiB
6Hibás válasz0/23ms3600 KiB
7Hibás válasz0/23ms4072 KiB
8Hibás válasz0/23ms3932 KiB
9Hibás válasz0/13ms4236 KiB
10Hibás válasz0/14ms4280 KiB
11Elfogadva1/14ms4412 KiB
12Hibás válasz0/14ms4288 KiB
13Hibás válasz0/24ms4452 KiB
14Hibás válasz0/24ms4540 KiB
15Hibás válasz0/27ms4768 KiB
16Hibás válasz0/27ms5020 KiB
17Hibás válasz0/27ms4964 KiB
18Hibás válasz0/28ms5384 KiB
19Hibás válasz0/27ms5060 KiB
20Hibás válasz0/27ms5056 KiB
21Elfogadva1/18ms5048 KiB
22Hibás válasz0/110ms5180 KiB
23Elfogadva1/113ms5424 KiB
24Elfogadva1/114ms5724 KiB
25Hibás válasz0/217ms5832 KiB
26Hibás válasz0/216ms5928 KiB
27Elfogadva2/217ms5920 KiB
28Hibás válasz0/217ms5920 KiB
29Hibás válasz0/218ms6164 KiB
30Hibás válasz0/217ms6132 KiB
31Hibás válasz0/217ms6196 KiB
32Hibás válasz0/218ms6252 KiB