Pagini recente » Cod sursa (job #514383) | Cod sursa (job #2091159) | Cod sursa (job #2200956) | Cod sursa (job #577773) | Cod sursa (job #3293737)
#include <bits/stdc++.h>
using namespace std;
#define inf 1e9
ifstream fin("sate.in"); ofstream fout("sate.out");
int main(){
int n, m, x, y;
fin >> n >> m >> x >> y;
vector<vector<int>> graf(n+1, vector<int> (n+1, 0));
for(int i = 1; i<=m; i++){
int u, v, c;
fin >> u >> v >> c;
graf[u][v] = c;
graf[v][u] = -c;
}
queue<int> q;
vector<int> vis(n+1, false);
vector<int> dis(n+1, inf);
dis[x] = 0;
q.push(x);
while(!q.empty()){
int node = q.front();
q.pop();
for(int j = 1; j<=n; j++){
if(graf[node][j]){
if(!vis[j]){
dis[j] = min(dis[j], dis[node]+graf[node][j]);
vis[j] = 1;
q.push(j);
if(j == y){
fout << dis[y] << endl;
return 0;
}
}
}
}
}
}