Cod sursa(job #638870)

Utilizator Tucu94Andrei Tuculanu Tucu94 Data 21 noiembrie 2011 20:04:46
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
#include<vector>
using namespace std;

int C[30001],W[30001],L[1000001],viz[30001],p,u,x,y,X,Y,a,M,N,i,d;
vector <int> A[1000001],D[1000001]; 

ifstream f("sate.in");
ofstream g("sate.out");

void citire(){
	f>>N>>M;
	f>>X>>Y;
	for(int i=1;i<=M;i++)
	{	
		f>>x>>y>>d;
		A[x].push_back(y);
		A[y].push_back(x);
		D[x].push_back(d);
		D[y].push_back(d);
	}

}
int main (){
	citire();
	
	for (i = 1; i <= N; i++) 
		L[i] = A[i].size(); 
	
	C[1]=X;viz[X] = 1;
	for( p=1 , u=1; u>=p && C[p]!=Y ;p++)
	{
		for (i = 0; i < L[C[p]]; i++) { 
			a = A[C[p]][i];
			if (!viz[a]) {
				viz[a]=1;
				C[++u] = a;
				if(C[p]<a)
					W[a]=W[C[p]]+D[C[p]][i];
				else
					W[a]=W[C[p]]-D[C[p]][i];
			}
	
	
		}
	} 




	g<<W[Y];




return 0;
}