246942026-02-13 22:43:46CzDaniHálózati átvitelcpp14Elfogadva 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';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms500 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva1/11ms492 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/22ms316 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva1/13ms316 KiB
10Elfogadva1/13ms704 KiB
11Elfogadva1/14ms820 KiB
12Elfogadva1/17ms564 KiB
13Elfogadva2/24ms656 KiB
14Elfogadva2/26ms708 KiB
15Elfogadva2/212ms820 KiB
16Elfogadva2/210ms720 KiB
17Elfogadva2/212ms860 KiB
18Elfogadva2/214ms828 KiB
19Elfogadva2/212ms864 KiB
20Elfogadva2/212ms840 KiB
21Elfogadva1/121ms4168 KiB
22Elfogadva1/128ms4220 KiB
23Elfogadva1/130ms4016 KiB
24Elfogadva1/135ms4448 KiB
25Elfogadva2/243ms5108 KiB
26Elfogadva2/241ms5080 KiB
27Elfogadva2/245ms5136 KiB
28Elfogadva2/237ms4472 KiB
29Elfogadva2/243ms5108 KiB
30Elfogadva2/241ms5248 KiB
31Elfogadva2/239ms5108 KiB
32Elfogadva2/241ms5108 KiB