Cod sursa(job #490692)

Utilizator S7012MYPetru Trimbitas S7012MY Data 7 octombrie 2010 15:40:45
Problema PScNv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
/*
 * File:   main.cpp
 * Author: petru
 *
 * Created on 2010-10-07
 */


#include <iostream>
#include <fstream>
#include <vector>
#define LL long long
#define x first
#define y second
#define DK 1010
#define DN 250100
using namespace std;

typedef pair<int, int> PER;
typedef vector <PER> grafc;

grafc gr[DK];

int n,m,sursa,dest,p[DN];

int t(int sursa) {
    if(p[sursa]==sursa) return sursa;
    p[sursa]=t(p[sursa]);
    return p[sursa];
}

int main()
{
	ifstream f("pscnv.in");
	ofstream g("pscnv.out");
	f>>n>>m>>sursa>>dest;
	for(int i=1; i<=m; ++i) {
	    int a,b,c;
	    f>>a>>b>>c;
	    gr[c].push_back(make_pair(a,b));
	}
	for(int i=1; i<=n; ++i) p[i]=i;
	for(int i=1; i<=1000; ++i) {
	    for(grafc::iterator it=gr[i].begin(); it!=gr[i].end(); ++it) {
	        int a=t((*it).x),b=t((*it).y);
	        if(a!=b) p[a]=p[b];
	    }
	    if(t(sursa)==t(dest)) {
	        g<<i;
	        break;
	    }
	}
	return 0;
}