80802024-01-12 12:17:25Huni136Hálózati átvitelcpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms2064 KiB
2Elfogadva0/03ms2340 KiB
3Elfogadva1/13ms2476 KiB
4Elfogadva1/13ms2564 KiB
5Elfogadva2/23ms2688 KiB
6Elfogadva2/23ms2920 KiB
7Elfogadva2/24ms3280 KiB
8Elfogadva2/24ms3224 KiB
9Elfogadva1/14ms3240 KiB
10Elfogadva1/16ms3256 KiB
11Elfogadva1/18ms3764 KiB
12Elfogadva1/18ms3848 KiB
13Elfogadva2/28ms3848 KiB
14Elfogadva2/29ms3976 KiB
15Elfogadva2/214ms4080 KiB
16Elfogadva2/214ms4076 KiB
17Elfogadva2/214ms4312 KiB
18Elfogadva2/214ms4228 KiB
19Elfogadva2/214ms4336 KiB
20Elfogadva2/214ms4336 KiB
21Elfogadva1/135ms4616 KiB
22Elfogadva1/148ms4872 KiB
23Elfogadva1/143ms4992 KiB
24Elfogadva1/150ms5520 KiB
25Elfogadva2/257ms5572 KiB
26Elfogadva2/261ms5716 KiB
27Elfogadva2/257ms5784 KiB
28Elfogadva2/239ms5928 KiB
29Elfogadva2/241ms5860 KiB
30Elfogadva2/239ms6040 KiB
31Elfogadva2/239ms6084 KiB
32Elfogadva2/241ms6196 KiB