Cod sursa(job #3302841)

Utilizator Iustin_Mircea2010Iustin Mircea Iustin_Mircea2010 Data 11 iulie 2025 14:32:32
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
#define pii pair<int, int>
#define fi first
#define se second
using namespace std;

vector<pii> adj[30005];

bool viz[30005];

int ans = -1, y;

void dfs(int i, int p){
    if(i == y){
        ans = p;
        return;
    } 
    viz[i] = 1;
    for(auto [j, cost] : adj[i]){
        if(ans != -1)//am gasit raspunsul
            return;
        if(!viz[j]){
            dfs(j, p + cost);
        }
    }
}

int main(){

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

    int n, m, x;
    cin >> n >> m >> x >> y;
    if(x > y) swap(x, y);
    for(int i = 1; i <= m; i++){
        int a, b, c;
        cin >> a >> b >> c;
        adj[a].push_back({b, c});
        adj[b].push_back({a, -c});
    }
    
    dfs(x, 0);
    
    cout << ans << '\n';
    
    return 0;
}