246942026-02-13 22:43:46CzDaniHálózati átvitelcpp14Accepted 50/5045ms5248 KiB
#include <bits/stdc++.h>
using namespace std;

#define fi first
#define se second

int main() {
    int n, m, k, h;
    cin >> n >> m >> k >> h;
    vector<vector<int>> dp(n+1, vector<int>(h+1, 0));
    dp[k][0]=100000;
    vector<pair<int, pair<int, int>>> elek;
    for (int i = 1; i <= m; i++) {
        int a, b, c;
        cin >> a >> b >> c;
        elek.push_back({c, {a, b}});
    }
    sort(elek.rbegin(), elek.rend());
    for (int i = 1; i <= h; i++) {
        for (auto p : elek) {
            auto [a, b] = p.second;
            dp[a][i]=max(min(p.fi, dp[b][i-1]), dp[a][i]);
            dp[b][i]=max(min(p.fi, dp[a][i-1]), dp[b][i]);
        }
    }
    for (int i = 1; i <= n; i++) {
        if (i==k) {
            cout << 0 << '\n';
            continue;
        }
        int maxi = 0;
        for (int j = 0; j <= h; j++) {
            maxi=max(maxi,dp[i][j]);
        }
        if (maxi==0) {
            cout << -1 << '\n';
            continue;
        }
        cout<<maxi<<'\n';
    }
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms500 KiB
2Accepted0/01ms316 KiB
3Accepted1/11ms492 KiB
4Accepted1/11ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/22ms316 KiB
8Accepted2/22ms316 KiB
9Accepted1/13ms316 KiB
10Accepted1/13ms704 KiB
11Accepted1/14ms820 KiB
12Accepted1/17ms564 KiB
13Accepted2/24ms656 KiB
14Accepted2/26ms708 KiB
15Accepted2/212ms820 KiB
16Accepted2/210ms720 KiB
17Accepted2/212ms860 KiB
18Accepted2/214ms828 KiB
19Accepted2/212ms864 KiB
20Accepted2/212ms840 KiB
21Accepted1/121ms4168 KiB
22Accepted1/128ms4220 KiB
23Accepted1/130ms4016 KiB
24Accepted1/135ms4448 KiB
25Accepted2/243ms5108 KiB
26Accepted2/241ms5080 KiB
27Accepted2/245ms5136 KiB
28Accepted2/237ms4472 KiB
29Accepted2/243ms5108 KiB
30Accepted2/241ms5248 KiB
31Accepted2/239ms5108 KiB
32Accepted2/241ms5108 KiB