Cod sursa(job #3374107)

Utilizator StefanVVulpoiu Stefan StefanV Data 8 noiembrie 2026 18:03:23
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>

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

int n, m, x, y, u, v, d;
vector <pair<int, int>> adj[30005];
int dist[30005];
bool vizitat[30005];

void BFS(int start)
{
    queue <int> q;

    q.push(start);
    vizitat[start] = true;
    dist[start] = 0;

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

        if (nod == y)
            break;

        for (pair<int, int> muchie : adj[nod])
        {
            int vecin = muchie.first;
            int cost = muchie.second;

            if (!vizitat[vecin])
            {
                vizitat[vecin] = true;
                dist[vecin] = dist[nod] + cost;
                q.push(vecin);
            }
        }
    }
}

int main()
{
    fin >> n >> m >> x >> y;

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

    BFS(x);
    fout << abs(dist[y]) << "\n";
    return 0;
}