Pagini recente » Cod sursa (job #1754049) | Cod sursa (job #17233) | Cod sursa (job #1009283) | Cod sursa (job #712171) | Cod sursa (job #1033303)
#include<queue>
#include<cstdio>
#include<vector>
using namespace std;
int fin,i,j,c,x,y,n,m,d[30009];
vector < pair < int , int > > v[30009];
void df(int x)
{
if(x==y) fin=1;
if(fin) return ;
vector < pair < int , int > > :: iterator it;
for(it=v[x].begin();it!=v[x].end();it++)
if(d[it->first]==-1)
{
d[it->first]=d[x]+it->second;
df(it->first);
}
}
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d",&n);
scanf("%d",&m);
scanf("%d",&x);
scanf("%d",&y);
while(m)
{
m--;
scanf("%d",&i);
scanf("%d",&j);
scanf("%d",&c);
v[i].push_back(make_pair(j,c));
v[j].push_back(make_pair(i,-c));
}
for(i=1;i<=n;i++)
d[i]=-1;
d[x]=0;
df(x);
printf("%d\n",d[y]);
return 0;
}