Cod sursa(job #3374402)

Utilizator tanasa.crinanicoleta@gmail.comtanasa crina [email protected] Data 8 noiembrie 2026 23:53:53
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <vector>

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>>> adj(n + 1);
    for (int i = 0; i < m; ++i) {
        int u, v, d;
        fin >> u >> v >> d;
        adj[u].push_back({v, d});
        adj[v].push_back({u, -d});
    }

    vector<int> dist(n + 1, -1);
    vector<int> q;
    q.push_back(x);
    dist[x] = 0;

    int head = 0;
    while (head < q.size()) {
        int u = q[head++];
        for (auto edge : adj[u]) {
            int v = edge.first;
            int d = edge.second;
            if (dist[v] == -1) {
                dist[v] = dist[u] + d;
                q.push_back(v);
            }
        }
    }

    fout << dist[y] << "\n";

    return 0;
}