Cod sursa(job #3371520)

Utilizator ananicoletaRosca Ana-Nicoleta ananicoleta Data 30 octombrie 2026 17:43:37
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <cmath>
using namespace std;

int n, m, x, y;
vector<pair<int, int>> adj[30005];
vector<int> dist(30005, 0);
vector<bool> viz(30005, false);

int distanta() {
    queue<int> coada;
    coada.push(x);
    viz[x] = true;

    while (!coada.empty()) {
        int curr = coada.front();
        coada.pop();

        if (curr == y) return dist[curr];

        for (auto muchie : adj[curr]) {
            int vecin = muchie.first;
            int cost = muchie.second;

            if (!viz[vecin]) {
                viz[vecin] = true;
                dist[vecin] = dist[curr] + cost;
                coada.push(vecin);
            }
        }
    }
    return 0;
}

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

    fin >> n >> m >> x >> y;
    for (int i = 0; i < m; i++) {
        int a, b, d;
        fin >> a >> b >> d;
        adj[a].push_back({b, d});
        adj[b].push_back({a, -d});
    }

    fout << abs(distanta()) << "\n";
    return 0;
}