Cod sursa(job #2550872)

Utilizator miha5092mihai mitrea miha5092 Data 19 februarie 2020 10:56:09
Problema Sate Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream in("sate.in");
ofstream out("sate.out");

int n, m, x, y;
vector <int> graph[30005], dist[30005];

bool viz[30005]; // vectorul viz pentru dfs

void dfs(int nod, int dis)
{
    viz[nod] = true ;
    if(nod == y)
    {
        out << max(dis, (-1)*dis) ;
    }
    for(int i=0; i<graph[nod].size(); i++)
        if(viz[graph[nod][i]] == false)
        {
            if(graph[nod][i] > nod)
            {
                dfs(graph[nod][i], dis + dist[nod][i]) ;
            }
            else
            {
                dfs(graph[nod][i], dis - dist[nod][i]) ;
            }
        }
}

int main()
{
    in >> n >> m >> x >> y ;
    int u, v, d;
    for(int i=1; i<=m; i++)
    {
        in >> u >> v >> d;
        graph[u].push_back(v);
        dist[u].push_back(d);
        graph[v].push_back(u);
        dist[v].push_back(d);
    }
    dfs(x, 0);
    return 0;
}