Cod sursa(job #530363)

Utilizator loginLogin Iustin Anca login Data 7 februarie 2011 17:22:36
Problema PScNv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
# include <fstream>
# include <vector>
# include <algorithm>
# include <set>
# define DIM 250003
# define pb push_back
# define mp make_pair
using namespace std;
int n, m, ss, dd, t[DIM];
vector< pair<int,int> > C[1<<10];

void read ()
{
	ifstream fin ("pscnv.in");
	fin>>n>>m>>ss>>dd;
	int x, y, k;
	for(int i=1;i<=m;++i)
	{
		fin>>x>>y>>k;
		C[k].pb(mp(x,y));
	}
}

int rad (int k)
{
	int y=k, i;
	while (t[k])
		k=t[k];
	while (t[y])
	{
		i=y;
		y=t[y];
		t[i]=k;
	}
	return k;
}

int main ()
{
	read ();
	ofstream fout ("pscnv.out");
	int rx, ry;
	for(int i=1;i<1<<10;++i)
		for(unsigned j=0;j<C[i].size();++j)
		{
			rx=rad(C[i][j].first);
			ry=rad(C[i][j].second);
			if (rx!=ry)
				t[rx]=ry;
			if (rad(ss)==rad(dd))
			{
				fout<<i;
				return 0;
			}
		}
	return 0;
}