Cod sursa(job #530380)

Utilizator bora_marianBora marian bora_marian Data 7 februarie 2011 17:59:07
Problema PScNv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
#include<vector>
using namespace std;
vector< pair<int ,int> >pon[1<<10];
int n,m,pornire,sfarsit,t[250005];
int solve();
int radacina(int k);
int main()
{
	ifstream fin("pscnv.in");
	ofstream fout("pscnv.out");
	fin>>n>>m>>pornire>>sfarsit;
	int i;
	for(i=1;i<=m;i++)
	{
		int a,b,c;
		fin>>a>>b>>c;
		pon[c].push_back(make_pair(a,b));
	}
    fout<<solve();
    return 0;
}
int solve()
{
	int i,j,x,y;
	for(i=1;i<(1<<10);i++)
	   for(j=0;j<pon[i].size();j++)
	   {
		 x=radacina(pon[i][j].first);
		 y=radacina(pon[i][j].second);
		 if(x!=y)
		   t[x]=y;
		 if(radacina(pornire)==radacina(sfarsit))
		    return i;
		} 
	return 0;	
}           	  
int radacina(int k)
{
	int aux=k,i;
	while(t[aux])
	   aux=t[aux];
	while(t[k])
	{
		i=k;
		k=t[k];
		t[i]=aux;
	}
	return aux;
}