80802024-01-12 12:17:25Huni136Hálózati átvitelcpp17Accepted 50/5061ms6196 KiB
#include <iostream>
#include <vector>
using namespace std;
int n,h,kezd;
vector<vector<pair<int,int>>> vc(10001);
//vector<int> tav(10001,1e9);

void bellmanford()
{
    vector<int> tav1(n+1,-1);
    vector<int> tav2(n+1,-1);
    tav1[kezd]=1e9;
    tav2[kezd]=1e9;
    for(int i=1;i<=h;i++)
    {
        for(int j=1;j<=n;j++)
        {
            for(auto it: vc[j])
            {
                // tav[it.first]=min(tav[it.first],it.second);
                if(tav1[it.first]<min(it.second,tav2[j]))
                {
                    tav1[it.first]=min(it.second,tav2[j]);
                }
            }
        }
        tav2=tav1;
    }
    tav1[kezd]=0;
    for(int i=1;i<=n;i++)
    {
        cout<<(tav1[i]!=-1?tav1[i]:-1)<<endl;
    }
}

int main()
{
    int m, k;
    cin>>n>>m>>kezd>>h;
    int x,y,z;
    for(int i=1;i<=m;i++)
    {
        cin>>x>>y>>z;
        vc[x].emplace_back(y,z);
        vc[y].emplace_back(x,z);
    }

    bellmanford();

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/03ms2064 KiB
2Accepted0/03ms2340 KiB
3Accepted1/13ms2476 KiB
4Accepted1/13ms2564 KiB
5Accepted2/23ms2688 KiB
6Accepted2/23ms2920 KiB
7Accepted2/24ms3280 KiB
8Accepted2/24ms3224 KiB
9Accepted1/14ms3240 KiB
10Accepted1/16ms3256 KiB
11Accepted1/18ms3764 KiB
12Accepted1/18ms3848 KiB
13Accepted2/28ms3848 KiB
14Accepted2/29ms3976 KiB
15Accepted2/214ms4080 KiB
16Accepted2/214ms4076 KiB
17Accepted2/214ms4312 KiB
18Accepted2/214ms4228 KiB
19Accepted2/214ms4336 KiB
20Accepted2/214ms4336 KiB
21Accepted1/135ms4616 KiB
22Accepted1/148ms4872 KiB
23Accepted1/143ms4992 KiB
24Accepted1/150ms5520 KiB
25Accepted2/257ms5572 KiB
26Accepted2/261ms5716 KiB
27Accepted2/257ms5784 KiB
28Accepted2/239ms5928 KiB
29Accepted2/241ms5860 KiB
30Accepted2/239ms6040 KiB
31Accepted2/239ms6084 KiB
32Accepted2/241ms6196 KiB