154682025-02-19 19:30:22horkaHálózati átvitelcpp17Wrong answer 38/50560ms18072 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n,m,k,h; cin>>n>>m>>k>>h;
    vector<vector<array<int, 2>>> adj(n+1);
    while(m--)
    {
        int a,b,w; cin>>a>>b>>w;
        adj[a].push_back({b,w});
        adj[b].push_back({a,w});
    }
    int inf=1e9+20;
    vector<vector<int>> dist(n+1, vector<int> (h+1, -1));
    priority_queue<array<int, 3>> q;
    dist[k][0]=0;
    q.push({0,0,k});
    while(!q.empty())
    {
        auto [tav,db,cs]=q.top();
        db=abs(db);
        q.pop();
        if(tav!=dist[cs][db] || db==h) continue;
        for(auto &[i,w]:adj[cs])
        {
            int p=min(w,tav);
            if(db==0) p=w;
            if(p>dist[i][db+1])
            {
                dist[i][db+1]=p;
                q.push({dist[i][db+1],-(db+1),i});
            }
        }
    }
    for(int i=1; i<=n; i++)
    {
        int maxi=0;
        for(int &x:dist[i])
            maxi=max(maxi,x);
        cout<<(i==k?0:maxi)<<"\n";
    }
}
SubtaskSumTestVerdictTimeMemory
base38/50
1Accepted0/01ms316 KiB
2Accepted0/01ms508 KiB
3Wrong answer0/11ms316 KiB
4Wrong answer0/11ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/22ms316 KiB
7Accepted2/22ms316 KiB
8Accepted2/22ms508 KiB
9Wrong answer0/13ms604 KiB
10Wrong answer0/18ms824 KiB
11Accepted1/117ms1124 KiB
12Accepted1/113ms1060 KiB
13Accepted2/217ms1068 KiB
14Accepted2/217ms1316 KiB
15Accepted2/246ms2492 KiB
16Accepted2/224ms1564 KiB
17Accepted2/234ms1808 KiB
18Accepted2/261ms2616 KiB
19Accepted2/245ms2544 KiB
20Accepted2/234ms1684 KiB
21Wrong answer0/1165ms5424 KiB
22Wrong answer0/1233ms7692 KiB
23Wrong answer0/1307ms10836 KiB
24Wrong answer0/1365ms10900 KiB
25Accepted2/2508ms11684 KiB
26Accepted2/2509ms11828 KiB
27Time limit exceeded0/2560ms18072 KiB
28Accepted2/2451ms17304 KiB
29Time limit exceeded0/2555ms17816 KiB
30Accepted2/2532ms17816 KiB
31Accepted2/2497ms17812 KiB
32Accepted2/2547ms17900 KiB