Pagini recente » Cod sursa (job #2902159) | Cod sursa (job #950311) | Cod sursa (job #3230678) | Cod sursa (job #1589257) | Cod sursa (job #2029535)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define NMAX 30000
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int n, m, x, y, a, b, d, dist[NMAX], viz[NMAX];
vector < pair<int, int> > g[NMAX];
queue <int> q;
void bfs(int st){
q.push(st);
dist[st] = 0;
viz[st] = 1;
while(!q.empty()){
int nod = q.front();
q.pop();
for(auto it : g[nod]){
if(!viz[it.first]){
viz[it.first] = 1;
dist[it.first] = dist[nod] + it.second;
q.push(it.first);
}
}
}
}
int main()
{
fin >> n >> m >> x >> y;
for(int i = 1; i <= m; i++){
fin >> a >> b >> d;
g[a].push_back({b, d});
g[b].push_back({a, -d});
}
bfs(x);
fout << dist[y];
return 0;
}