Cod sursa(job #3373433)

Utilizator SpiketySurei Stefan Spikety Data 6 noiembrie 2026 23:21:14
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 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;
int bfs(int S,int destination,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();
        if(x==destination){
            return abs(dist[x]);
        }
        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 abs(dist[destination]);
}
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});
    }
    fout<<bfs(X,Y,n)<<"\n";
    fin.close();
    fout.close();
    return 0;
}