9667 2024. 02. 23 20:23:43 Vkrisztian01 Hálózati átvitel cpp17 Elfogadva 50/50 45ms 6496 KiB
#include <iostream>
#include<algorithm>
#include<vector>

using namespace std;

int n,m,k,h,a,b,c;
vector<vector<pair<int,int> > > g;
vector<int>cost1;
vector<int>cost2;

void f()
{
    while(h--)
    {
        for(int node=1;node<=n;node++)
        {
            for(auto to:g[node])
            {
                cost2[to.first]=max(cost2[to.first],min(to.second,cost1[node]));
            }
        }
        cost1=cost2;
    }
}

int main()
{
    cin>>n>>m>>k>>h;
    g.resize(n+1);
    cost1.assign(n+1,-1);
    cost2.assign(n+1,-1);
    while(m--)
    {
        cin>>a>>b>>c;
        g[a].push_back({b,c});
        g[b].push_back({a,c});
    }
    cost1[k]=1e9;
    cost2[k]=1e9;
    f();
    cost1[k]=0;
    for(int i=1;i<=n;i++) cout<<cost1[i]<<"\n";
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1876 KiB
2 Elfogadva 0/0 3ms 2132 KiB
3 Elfogadva 1/1 3ms 2344 KiB
4 Elfogadva 1/1 3ms 2512 KiB
5 Elfogadva 2/2 3ms 2760 KiB
6 Elfogadva 2/2 3ms 2980 KiB
7 Elfogadva 2/2 3ms 3340 KiB
8 Elfogadva 2/2 3ms 3412 KiB
9 Elfogadva 1/1 4ms 3740 KiB
10 Elfogadva 1/1 4ms 4072 KiB
11 Elfogadva 1/1 6ms 4136 KiB
12 Elfogadva 1/1 8ms 4248 KiB
13 Elfogadva 2/2 6ms 4288 KiB
14 Elfogadva 2/2 8ms 4192 KiB
15 Elfogadva 2/2 13ms 4444 KiB
16 Elfogadva 2/2 12ms 4592 KiB
17 Elfogadva 2/2 13ms 4564 KiB
18 Elfogadva 2/2 14ms 4760 KiB
19 Elfogadva 2/2 13ms 4844 KiB
20 Elfogadva 2/2 13ms 5152 KiB
21 Elfogadva 1/1 24ms 5808 KiB
22 Elfogadva 1/1 28ms 5932 KiB
23 Elfogadva 1/1 32ms 5856 KiB
24 Elfogadva 1/1 35ms 6220 KiB
25 Elfogadva 2/2 43ms 6348 KiB
26 Elfogadva 2/2 41ms 6396 KiB
27 Elfogadva 2/2 45ms 6460 KiB
28 Elfogadva 2/2 29ms 6352 KiB
29 Elfogadva 2/2 30ms 6348 KiB
30 Elfogadva 2/2 29ms 6348 KiB
31 Elfogadva 2/2 29ms 6348 KiB
32 Elfogadva 2/2 30ms 6496 KiB