Cod sursa(job #1477427)

Utilizator Liviu98Dinca Liviu Liviu98 Data 26 august 2015 11:25:10
Problema PScNv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
const int NMax=250005;
const int INFINIT=0x3f3f3f3f;
vector<pair<int,int>> Graf[1011];
int N,M,x,y,X,Y;
int T[NMax];

void Read()
{
    scanf("%d%d%d%d",&N,&M,&X,&Y);
    for(int i=1;i<=M;i++)
    {
        int a,b,ki;
        scanf("%d%d%d",&a,&b,&ki);
        Graf[ki].push_back(make_pair(a,b));
    }
}

int Find(int nod)
{
    if(nod==T[nod])
        return nod;
    return T[nod]=Find(T[nod]);
}

void Solve()
{
    for(int i=1;i<=N;i++)
        T[i]=i;

    for(int i=1;i<=1000;i++)
        for(auto it:Graf[i])
        {
            x=it.first,y=it.second;
            x=Find(x),y=Find(y);

            if(x!=y)
                T[x]=y;

            if(Find(X)==Find(Y))
               {
                   printf("%d",i);
                   return;
               }
        }
}

int main()
{
    freopen("pscnv.in","r",stdin);
    freopen("pscnv.out","w",stdout);
    Read();
    Solve();
}