Cod sursa(job #2911838)

Utilizator aminaAmina Suciu amina Data 2 iulie 2022 19:21:51
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <vector>

using namespace std;
int n, m, x, y;
const int Nmax=30001;
vector <int> adi[Nmax];
vector <int> cst[Nmax];
int vis[Nmax];
int distanta[Nmax];


void bfs(int startnode)
{
    for(int i=0; i<adi[startnode].size(); i++)
    {
        int vecin=adi[startnode][i];

        if(vis[vecin]==0)
        {
            vis[vecin]=1;
            if(vecin>startnode)
            distanta[vecin]=distanta[startnode]+cst[startnode][i];
            else distanta[vecin]=distanta[startnode]-cst[startnode][i];
            bfs(vecin);

        }


    }
}


int main()
{
 freopen("sate.in", "r", stdin);
 freopen("sate.out", "w", stdout);
   scanf("%d%d%d%d", &n, &m, &x, &y);
   for(int i=0; i<m; i++)
   {
       int s1, s2;
       int dist;
       scanf("%d%d", &s1, &s2);
       scanf("%d", &dist);
       adi[s1].push_back(s2);
       adi[s2].push_back(s1);
       cst[s1].push_back(dist);
       cst[s2].push_back(dist);

   }
   bfs(x);
   cout<<distanta[y];
}