155532025-02-20 12:20:43999Hálózati átvitelcpp17Hibás válasz 1/5043ms2168 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
#define int long long

const int INF = 1e12;

signed main() {
    int n,m,k,h;cin>>n>>m>>k>>h;
    vector<vector<pair<int,int>>> v(n);
    k--;
    for(int i = 0;i<m;i++){
        int a,b,c;cin>>a>>b>>c;
        v[--a].push_back({--b,c});
        v[b].push_back({a,c});
    }
    vector<int> d(n,-1);
    d[k]=INF;
    priority_queue<array<int,3>> q;
    q.push({INF,0,k});
    while(!q.empty()){
        auto [mx,c,u]=q.top();
        q.pop();
        if(d[u]>mx)continue;
        for(auto [i,w] : v[u]){
            if(d[i]<min(d[u],w)&&c+1<=h){
                d[i]=min(d[u],w);
                q.push({d[i],c+1,i});
            }
        }
    }
    d[k]=0;
    for(int i : d)cout<<i<<endl;    
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base1/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/01ms316 KiB
3Elfogadva1/11ms316 KiB
4Hibás válasz0/11ms316 KiB
5Hibás válasz0/21ms316 KiB
6Hibás válasz0/21ms364 KiB
7Hibás válasz0/22ms412 KiB
8Hibás válasz0/22ms392 KiB
9Hibás válasz0/13ms316 KiB
10Hibás válasz0/14ms564 KiB
11Hibás válasz0/16ms596 KiB
12Hibás válasz0/18ms584 KiB
13Hibás válasz0/26ms468 KiB
14Hibás válasz0/27ms584 KiB
15Hibás válasz0/212ms964 KiB
16Hibás válasz0/212ms1076 KiB
17Hibás válasz0/212ms928 KiB
18Hibás válasz0/212ms1076 KiB
19Hibás válasz0/212ms1116 KiB
20Hibás válasz0/212ms1068 KiB
21Hibás válasz0/126ms1232 KiB
22Hibás válasz0/130ms1552 KiB
23Hibás válasz0/137ms1724 KiB
24Hibás válasz0/139ms1900 KiB
25Hibás válasz0/239ms2036 KiB
26Hibás válasz0/239ms2016 KiB
27Hibás válasz0/243ms2012 KiB
28Hibás válasz0/239ms1968 KiB
29Hibás válasz0/237ms2168 KiB
30Hibás válasz0/237ms2032 KiB
31Hibás válasz0/239ms2128 KiB
32Hibás válasz0/239ms2116 KiB