Pagini recente » Cod sursa (job #8539) | Cod sursa (job #654529) | Cod sursa (job #1889405) | Cod sursa (job #1917584) | Cod sursa (job #77233)
Cod sursa(job #77233)
#include <stdio.h>
#include <vector>
using namespace std;
#define nmax 32768
#define mp make_pair
#define pb push_back
#define FOR(i,s,d) for(i=(s);i<(d);++i)
#define sz size()
#define f first
#define s second
vector <pair <int,int> > G[nmax];
int n,m,x,y,A[nmax],viz[nmax];
void parc(int i,int x)
{
int j;
if(viz[i]||viz[y])
return ;
viz[i]=1, A[i]=x;
FOR(j,0,G[i].sz)
parc(G[i][j].f,x+G[i][j].s);
}
int main()
{
int ii,j,i,c;
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d %d %d %d",&n,&m,&x,&y);
FOR(ii,0,m)
{
scanf("%d %d %d",&i,&j,&c);
G[i].pb(mp(j,c));
G[j].pb(mp(i,-c));
}
parc(x,0);
printf("%d\n",A[y]<0?-A[y]:A[y]);
return 0;
}