Pagini recente » Cod sursa (job #1526891) | Cod sursa (job #2936643) | Cod sursa (job #376071) | Cod sursa (job #2437632) | Cod sursa (job #1033306)
#include<queue>
#include<cstdio>
#include<vector>
using namespace std;
int po,fin,i,j,c,x,y,n,m,d[30009];
char sir[109];
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);
}
}
void cit(int &x)
{
x=0;
while(sir[po]>='0'&&sir[po]<='9')
{
x=x*10+sir[po]-48;
po++;
}
po++;
}
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d",&n);
scanf("%d",&m);
scanf("%d",&x);
scanf("%d\n",&y);
while(m)
{
m--;
gets(sir+1);po=1;
cit(i);
cit(j);
cit(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;
}