80712024-01-12 11:59:22Huni136Hálózati átvitelcpp17Hibás válasz 10/5057ms10440 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);
    }

    bellmanford();

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base10/50
1Elfogadva0/03ms2068 KiB
2Hibás válasz0/03ms2272 KiB
3Hibás válasz0/13ms2508 KiB
4Hibás válasz0/13ms2728 KiB
5Hibás válasz0/23ms2916 KiB
6Hibás válasz0/23ms3164 KiB
7Hibás válasz0/24ms3368 KiB
8Hibás válasz0/24ms3720 KiB
9Hibás válasz0/14ms3712 KiB
10Hibás válasz0/16ms4008 KiB
11Hibás válasz0/18ms4312 KiB
12Hibás válasz0/18ms4328 KiB
13Hibás válasz0/28ms4252 KiB
14Hibás válasz0/28ms4728 KiB
15Hibás válasz0/214ms5120 KiB
16Hibás válasz0/214ms5248 KiB
17Hibás válasz0/214ms5372 KiB
18Hibás válasz0/214ms5552 KiB
19Hibás válasz0/214ms5840 KiB
20Hibás válasz0/214ms6220 KiB
21Hibás válasz0/130ms6456 KiB
22Hibás válasz0/139ms7128 KiB
23Hibás válasz0/143ms7236 KiB
24Hibás válasz0/152ms7984 KiB
25Hibás válasz0/250ms8472 KiB
26Hibás válasz0/254ms8632 KiB
27Hibás válasz0/257ms8884 KiB
28Elfogadva2/237ms9304 KiB
29Elfogadva2/243ms9704 KiB
30Elfogadva2/246ms9720 KiB
31Elfogadva2/241ms9992 KiB
32Elfogadva2/241ms10440 KiB