Pagini recente » Cod sursa (job #1595454) | Cod sursa (job #989451) | Cod sursa (job #612406) | Cod sursa (job #1968657) | Cod sursa (job #1701951)
#include<cstdio>
#include<vector>
using namespace std;
vector<int> v[100001],vec[100001];
int x,y,pp,vc[100001],i,j,n,m,k,l,in=1,sf=1,coada[100001];
void bfs(int nod)
{
if(pp==0)
{
if(vc[y]!=0||nod==y)
pp=1;
for(int i=0;i<v[nod].size();i++)
if(vc[v[nod][i]]==0)
{
coada[++sf]=v[nod][i];
vc[v[nod][i]]=vc[nod]+vec[nod][i];
}
in++;
if(in<=sf)
bfs(coada[in]);
}
}
int main ()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&x,&y);
for(i=1;i<=m;i++)
{
int q,qq,qqq;
scanf("%d%d%d",&q,&qq,&qqq);
v[q].push_back(qq);
v[qq].push_back(q);
vec[q].push_back(qqq);
vec[qq].push_back(-qqq);
}
coada[1]=x;
bfs(x);
printf("%d",vc[y]);
return 0;
}