Cod sursa(job #956731)

Utilizator misinozzz zzz misino Data 3 iunie 2013 19:45:28
Problema PScNv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
#include<vector>
#define mp make_pair
#define pb push_back
#define x first
#define y second
using namespace std;
ifstream f("pscnv.in");
ofstream g("pscnv.out");
int i,j,n,m,x,y,a,b,c,t[250100];
vector<pair<int,int> >v[1010];
inline void uneste(int x,int y)
{
    t[x]=y;
}
inline int tata(int x)
{
    if(x==t[x])
    return x;
    return t[x]=tata(t[x]);
}
int main()
{
    f>>n>>m>>x>>y;
    for(i=1;i<=m;++i)
    {
        f>>a>>b>>c;
        v[c].pb(mp(a,b));
    }
    for(i=1;i<=n;++i)
    t[i]=i;
    for(i=1;i<=1010;++i)
    {
        for(j=0;j<v[i].size();++j)
        if(tata(v[i][j].x)!=tata(v[i][j].y))
        uneste(tata(v[i][j].x),tata(v[i][j].y));
        if(tata(x)==tata(y))
        {
            g<<i<<'\n';
            return 0;
        }
    }
}