Cod sursa(job #3373867)

Utilizator nisa21111Denisa Beleuzu nisa21111 Data 7 noiembrie 2026 23:18:18
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;

int main(){
    freopen("sate.in","r",stdin);
    freopen("sate.out","w",stdout);
    int n,m,x,y;
    scanf("%d %d %d %d",&n,&m,&x,&y);
    vector<vector<pair<int,int>>> g(n+1);
    for(int k=0;k<m;k++){
        int i,j,d;
        scanf("%d %d %d",&i,&j,&d);
        g[i].push_back({j,d});
        g[j].push_back({i,-d});
    }
    vector<long long> pos(n+1,0);
    vector<char> vis(n+1,0);
    queue<int> q;
    q.push(x);
    vis[x]=1;
    pos[x]=0;
    while(!q.empty() && !vis[y]){
        int u=q.front(); q.pop();
        for(auto &e:g[u]){
            int v=e.first;
            if(!vis[v]){
                vis[v]=1;
                pos[v]=pos[u]+e.second;
                q.push(v);
            }
        }
    }
    printf("%lld\n", llabs(pos[y]-pos[x]));
    return 0;
}