Pagini recente » Cod sursa (job #755564) | Cod sursa (job #2298564) | Istoria paginii runda/rar2 | Cod sursa (job #581285) | Cod sursa (job #2297192)
#include <bits/stdc++.h>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
int n,m,x,y,dis[30005];
vector <pair<int,int>> sate[30005];
queue <int> q;
int main()
{int i,a,b,k,d,c;
in>>n>>m>>x>>y;
for (i=1;i<=m;i++)
{
in>>a>>b>>c;
sate[a].push_back({b,c});
sate[b].push_back({a,-1*c});
}
for (i=1;i<=n;i++)dis[i]=-1;
q.push(x);
dis[x]=0;
while (!q.empty())
{
k=q.front();
q.pop();
for (auto w : sate[k])
{
i=w.first;
d=w.second;
if (dis[i]==-1)
{
dis[i]=dis[k]+d;
if (i==y)
{
out<<dis[y]<<"\n";return 0;
}
q.push({i});
}
}
}
out<<dis[y]<<"\n";
out.close();
in.close();
return 0;
}