Cod sursa(job #595266)

Utilizator veleanduAlex Velea veleandu Data 11 iunie 2011 19:14:58
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>
#include<vector>
using namespace std;
typedef struct { long vil,dist; } sat;
long i,j;
long n,m,x,y;
long a,b,d;
sat aux;
long dist [30005];
bool Viz[30005];
vector <sat> T[30005];
void BFs ( long varf )
{
	vector <sat> :: iterator it;
	for ( it=T[varf].begin() ; it!=T[varf].end() ; ++it )
	{
		aux=*it;
		if ( Viz[aux.vil]==false )
		{
			Viz[aux.vil]=true;
			if ( aux.vil > varf )
			{
				dist[aux.vil]=dist[varf]+(aux.dist);
				BFs( aux.vil );
			}
			else{
				dist[aux.vil]=dist[varf]-(aux.dist);
				BFs( aux.vil );
			}
		}
			
	}
}
int main()
{
	ifstream in("sate.in");
	ofstream out("sate.out");
	in>>n>>m>>x>>y;
	for ( i=1; i<=m; ++i )
	{
		in>>a>>b>>d;
		aux.vil=a;
		aux.dist=d;
		T[b].push_back(aux);
		aux.vil=b;
		T[a].push_back(aux);
	}
	Viz[x]=true;
	BFs( x );
	out<<dist[y];
	
	return 0;
}