Pagini recente » Cod sursa (job #3314815) | Cod sursa (job #1453094) | Cod sursa (job #3331103) | Cod sursa (job #3336487) | Cod sursa (job #3305692)
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("sate.in");
ofstream cout("sate.out");
int n, m, x, y, dist[30005];
vector<pair<int, int>> adj[30005];
void bfs(int nod){
queue<int> q;
q.push(nod);
while(!q.empty()){
int nodCrt=q.front();
q.pop();
for(auto vecin:adj[nodCrt]){
if(dist[vecin.first]==0){
dist[vecin.first]=dist[nodCrt]+vecin.second;
q.push(vecin.first);
}
}
}
}
int main(){
cin>>n>>m>>x>>y;
for(int i=1;i<=m;i++){
int a, b, d;
cin>>a>>b>>d;
if(a>b){
swap(a, b);
}
adj[a].push_back({b, d});
adj[b].push_back({a, -d});
}
dist[x]=1;
bfs(x);
cout<<dist[y]-1;
}