Cod sursa(job #3372652)

Utilizator srares2006Samoila Rares srares2006 Data 4 noiembrie 2026 16:43:28
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <vector>
#include <queue>
#include <utility>
#include <cstdlib>
using namespace std;

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

    int n, m, x, y;
    fin >> n >> m >> x >> y;

    vector<vector<pair<int, int>>> graf(n + 1);

    for (int k = 0; k < m; ++k) {
        int i, j, d;
        fin >> i >> j >> d;

        graf[i].push_back({j, d});
        graf[j].push_back({i, -d});
    }

    vector<int> poz(n + 1, 0);
    vector<bool> vizitat(n + 1, false);
    queue<int> q;

    poz[x] = 0;
    vizitat[x] = true;
    q.push(x);

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

        for (const auto& muchie : graf[u]) {
            int v = muchie.first;
            int deplasare = muchie.second;

            if (!vizitat[v]) {
                poz[v] = poz[u] + deplasare;
                vizitat[v] = true;
                q.push(v);
            }
        }
    }

    fout << abs(poz[y]) << '\n';

    return 0;
}