249332026-02-16 22:17:01ercseferencHálózati átvitelcpp17Elfogadva 50/5093ms5684 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/22ms416 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva1/12ms564 KiB
10Elfogadva1/13ms564 KiB
11Elfogadva1/14ms676 KiB
12Elfogadva1/17ms564 KiB
13Elfogadva2/24ms564 KiB
14Elfogadva2/27ms748 KiB
15Elfogadva2/212ms820 KiB
16Elfogadva2/212ms728 KiB
17Elfogadva2/212ms820 KiB
18Elfogadva2/213ms1004 KiB
19Elfogadva2/213ms820 KiB
20Elfogadva2/212ms864 KiB
21Elfogadva1/120ms4656 KiB
22Elfogadva1/132ms4660 KiB
23Elfogadva1/134ms4660 KiB
24Elfogadva1/139ms4836 KiB
25Elfogadva2/248ms5596 KiB
26Elfogadva2/254ms5684 KiB
27Elfogadva2/254ms5548 KiB
28Elfogadva2/275ms5028 KiB
29Elfogadva2/292ms5684 KiB
30Elfogadva2/293ms5512 KiB
31Elfogadva2/293ms5684 KiB
32Elfogadva2/290ms5684 KiB