Cod sursa(job #77233)

Utilizator DITzoneCAdrian Diaconu DITzoneC Data 13 august 2007 22:26:31
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#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;
}