Cod sursa(job #3137934)

Utilizator TaniaKallosKallos Tania TaniaKallos Data 16 iunie 2023 09:40:46
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;


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


const int N = 3e4;
int n, m, x, y;
bool viz[N+1];
int dist[N+1];
vector < vector < pair <int, int> > > v;


void dfs(int nod)
{
    queue <int> q;
    q.push(nod);

    while (!q.empty())
    {
        int a = q.front();
        q.pop();

        for (int i = 0; i < v[a].size(); i++)
        {
            int b = v[a][i].first;
            int d = v[a][i].second;

            if (!viz[b])
            {
                viz[b] = 1;
                dist[b] = dist[a] + d;
                q.push(b);
            }
        }
    }
}


int main()
{
    fin >> n >> m >> x >> y;
    v.resize(n+1);

    if (x > y)
        swap(x, y);

    for (int i = 1; i <= m; i++)
    {
        int a, b, d;
        fin >> a >> b >> d;
        v[a].push_back( make_pair(b, d) );
        v[b].push_back( make_pair(a, -d) );
    }


    dfs(x);

    fout << dist[y];


    return 0;
}