Cod sursa(job #360810)

Utilizator iulia609fara nume iulia609 Data 2 noiembrie 2009 04:00:25
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<stdio.h>
#include<vector>
#define NMAX 30001
using namespace std;

int N,M,X,Y,C[NMAX],V[NMAX];
vector<int> A[NMAX];
vector<int> B[NMAX];

int main()
{  int t, aux,k, in, sf, cost,x,y,i,l;

	freopen("sate.in", "r", stdin);
	freopen("sate.out", "w", stdout);
	
	scanf("%d%d%d%d", &N, &M, &X, &Y);
	
	for(i = 1; i <= M; i++)
		{
			scanf("%d%d%d", &x, &y, &cost);
			A[x].push_back(y);
			A[y].push_back(x);
			B[x].push_back(cost);
			B[y].push_back(cost);
		}
	
	
	in = sf = 1;
	C[1] = X;
	while(!V[Y])
	{
		X = C[in++];
		
		//l = A[X].size();
		k = 0;
	
		while(k < A[X].size())
		{
			aux = A[X][k];
			if(!V[aux])
			{
				t = B[X][k];
				V[aux] = V[X];
				if(X < aux)
					V[aux] += t;
				  else
					V[aux] -= t;
				
				sf++;
				C[sf] = aux;
			}
			k++;
		}
		//in++;
	}
 
	printf("%d\n",V[Y]);
	return 0;
	
}