Pagini recente » Cod sursa (job #1189783) | Cod sursa (job #291628) | Cod sursa (job #3272387) | Cod sursa (job #873867) | Cod sursa (job #1033301)
#include<queue>
#include<cstdio>
#include<vector>
using namespace std;
int i,j,c,x,y,n,m,d[30009];
vector < pair < int , int > > v[30009];
vector < pair < int , int > > :: iterator it;
queue < int > cc;
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;
cc.push(x);
while(!cc.empty())
{
i=cc.front();cc.pop();
for(it=v[i].begin();it!=v[i].end();it++)
if(d[it->first]==-1)
{
d[it->first]=d[i]+it->second;
if(it->first==y)
{
printf("%d\n",d[y]);
return 0;
}
cc.push(it->first);
}
}
}