Pagini recente » Cod sursa (job #1516782) | Cod sursa (job #3270108) | Cod sursa (job #2371516) | Cod sursa (job #1662560) | Cod sursa (job #3268658)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
int n,m,x,y,a,b,d2;
int d[100025];
queue <int> q;
vector <pair <int, int> > v[100025];
void bfs(int s)
{
q.push(s);
d[s]=1;
while(!q.empty())
{
int nod=q.front();
q.pop();
for(auto i:v[nod])
if(!d[i.first])
{
q.push(i.first);
d[i.first]=d[nod]+i.second;
}
}
}
int main()
{
in>>n>>m>>x>>y;
for(int i=1;i<=m;i++)
{
in>>a>>b>>d2;
v[a].push_back({b,d2});
v[b].push_back({a,-d2});
}
bfs(x);
out<<d[y]-1;
return 0;
}