Cod sursa(job #3373432)

Utilizator SpiketySurei Stefan Spikety Data 6 noiembrie 2026 23:17:37
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<iostream>
#include<vector>
#include<fstream>
#include<queue>
#include<cmath>
using namespace std;

ifstream fin("sate.in");
ofstream fout("sate.out");
vector<vector<pair<int, int>>> graf;

vector<int> bfs(int S, int n){
    vector<int> dist(n+1, 0);
    vector<bool> viz(n+1, false);
    queue<int> q;
    
    dist[S] = 0;
    viz[S] = true;
    q.push(S);
    
    while(!q.empty()){
        int x = q.front();
        q.pop();
        for(auto edge : graf[x]){
            int i = edge.first;
            int w = edge.second;
            if(!viz[i]){
                viz[i] = true;
                dist[i] = dist[x] + w;
                q.push(i);
            }
        }
    }
    return dist;
}

int main(){
    int n, m, X, Y, u, v, d;
    fin >> n >> m >> X >> Y;
    
    graf.resize(n+1);
    for(int i = 0; i < m; ++i){
        fin >> u >> v >> d;
        graf[u].push_back({v, d});
        graf[v].push_back({u, -d});
    }
    
    vector<int> distante = bfs(X, n);
    
    fout << abs(distante[Y]) << "\n";
    
    fin.close();
    fout.close();
    return 0;
}