Cod sursa(job #3372393)

Utilizator laurentiu.maticaMatica Laurentiu-Andrei laurentiu.matica Data 3 noiembrie 2026 15:24:38
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream cin("sate.in");
ofstream cout("sate.out");

vector<vector<pair<int,int>>> g;
queue<pair<int,int>> q;
vector<int> d;

void bfs(const int n) {
    q.emplace(n,0);
    d[n] = 0;

    while(!q.empty()) {
        pair<int,int> p = q.front();
        q.pop();
        for (const auto x : g[p.first]) {
            if (d[x.first] == -1) {
                d[x.first] = d[p.first] + x.second;
                q.emplace(x.first,d[x.first]);
            }
        }
    }
}

int main() {
    int n,m,x,y;

    cin >> n >> m >> x >> y;

    g.resize(n+1);
    d.resize(n+1, -1);

    for (int i = 0; i < m; i++) {
        int a,b,c;
        cin >> a >> b >> c;
        g[a].emplace_back(b,c);
        g[b].emplace_back(a,-c);
    }

    bfs(x);
    cout << d[y];

    return 0;
}