249312026-02-16 22:13:20ercseferencHálózati átvitelcpp17Time limit exceeded 40/50592ms17088 KiB
#include <bits/stdc++.h>
using namespace std;
int n,m,k,h;
struct dupla{int a,b;};
struct csucs{vector<int>tav; vector<dupla>kim;};
int main()
{
    //ifstream f("szamok.txt");
    cin>>n>>m>>k>>h;
    vector<csucs>a(n+1);
    for(int i=1; i<=n; i++){
        a[i].tav.resize(h+1);
        fill(a[i].tav.begin(),a[i].tav.end(),-1);}
    for(int i=0; i<m; i++){
        int x,y,z; cin>>x>>y>>z;
        a[x].kim.push_back({y,z});
        a[y].kim.push_back({x,z});}
    vector<int>l1,l2; l1.push_back(k);
    for(int i=0; i<=h; i++)a[k].tav[i]=INT_MAX;
    for(int i=0; i<h; i++){
        for(int j:l1){
            for(dupla l:a[j].kim){
                if(a[l.a].tav[i+1]<min(l.b,a[j].tav[i])){
                    for(int o=i+1; o<=h; o++){
                        a[l.a].tav[o]=min(l.b,a[j].tav[i]);
                        l2.push_back(l.a);}}}}
        l1=l2; l2.clear();}
    for(int i=1; i<=n; i++)
        if(i==k)cout<<0<<'\n';
        else cout<<a[i].tav[h]<<'\n';
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base40/50
1Accepted0/01ms508 KiB
2Accepted0/01ms316 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/22ms508 KiB
7Accepted2/22ms316 KiB
8Accepted2/22ms316 KiB
9Accepted1/13ms552 KiB
10Accepted1/14ms752 KiB
11Accepted1/19ms1136 KiB
12Accepted1/110ms864 KiB
13Accepted2/210ms1080 KiB
14Accepted2/214ms1032 KiB
15Accepted2/243ms1640 KiB
16Accepted2/228ms1268 KiB
17Accepted2/232ms1504 KiB
18Accepted2/252ms1816 KiB
19Accepted2/246ms1540 KiB
20Accepted2/232ms1564 KiB
21Accepted1/154ms6404 KiB
22Accepted1/1101ms7824 KiB
23Accepted1/1119ms9288 KiB
24Accepted1/1165ms10516 KiB
25Accepted2/2263ms12948 KiB
26Accepted2/2323ms13276 KiB
27Accepted2/2310ms13180 KiB
28Time limit exceeded0/2587ms14748 KiB
29Time limit exceeded0/2584ms17004 KiB
30Time limit exceeded0/2592ms16796 KiB
31Time limit exceeded0/2583ms16552 KiB
32Time limit exceeded0/2587ms17088 KiB