Pagini recente » Rating Hogun Miguel (hogun21) | Cod sursa (job #3143008)
//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);
}