249342026-02-16 22:17:46ercseferencHálózati átvitelcpp17Elfogadva 50/5090ms5720 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()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    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/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms500 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva1/12ms564 KiB
10Elfogadva1/12ms564 KiB
11Elfogadva1/13ms564 KiB
12Elfogadva1/14ms568 KiB
13Elfogadva2/24ms564 KiB
14Elfogadva2/24ms564 KiB
15Elfogadva2/27ms820 KiB
16Elfogadva2/26ms820 KiB
17Elfogadva2/27ms844 KiB
18Elfogadva2/27ms888 KiB
19Elfogadva2/27ms820 KiB
20Elfogadva2/27ms820 KiB
21Elfogadva1/117ms4548 KiB
22Elfogadva1/121ms4680 KiB
23Elfogadva1/124ms4660 KiB
24Elfogadva1/128ms4868 KiB
25Elfogadva2/239ms5684 KiB
26Elfogadva2/241ms5720 KiB
27Elfogadva2/241ms5644 KiB
28Elfogadva2/264ms5064 KiB
29Elfogadva2/287ms5676 KiB
30Elfogadva2/282ms5640 KiB
31Elfogadva2/289ms5676 KiB
32Elfogadva2/290ms5700 KiB