Cod sursa(job #3143008)

Utilizator vozian.anghelinaAnghelina Vozian vozian.anghelina Data 26 iulie 2023 19:20:10
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
//https://www.infoarena.ro/problema/sate
#include <bits/stdc++.h>
using namespace std;

int n,m,x,y,z,s,f,rs, V[200200];

typedef struct {
    int v;
    int d;
} muchie;

vector<muchie> G[200200];

void uneste(int x, int y, int z){
    muchie m;
    m.v = y;
    m.d = z;
    G[x].push_back(m);
}

int bfs(int s, int f){
    if(s == f){
        return 0;
    }

    V[s] = 1;

    for(int i=0; i<G[s].size(); i++){
        int y = G[s][i].v;
        int dy = G[s][i].d;
        if(V[y] != 1){
            int d = bfs(y, f);
            if(d != 1e9){
                return d + (s < y ? dy : -dy);
            }
        }
    }

    return 1e9;
}

int main(){
    ifstream cin("sate.in");
    ofstream cout("sate.out");
    cin >> n >> m >> s >> f;
    for(int i=1; i<=m; i++){
        cin >> x >> y >> z;
        uneste(x,y,z);
        uneste(y,x,z);     
    }
    cout << bfs(s,f);
}