Cod sursa(job #1685241)

Utilizator adiXMGemene Adrian adiXM Data 11 aprilie 2016 16:14:06
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
/*
It always seems impossible until its done.
**/
#include <bits/stdc++.h>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
const int NMAX=100005;
int Father[NMAX];
inline int Find(int x)
{
    if(Father[x]!=x)
        Father[x]=Find(Father[x]);
    return Father[x];
}
inline void Union(int x,int y)
{
    Father[x]=y;
}
int main()
{
    int x,y,tip,n,m;
    f>>n>>m;
    for(int i=1;i<=n;i++)
        Father[i]=i;
    for(int i=1;i<=m;i++)
    {
        f>>tip>>x>>y;
        int xx=Find(x);
        int yy=Find(y);
        if(tip==1)
            Union(xx,yy);
        else
        {
            if(xx==yy)
                g<<"DA\n";
            else
                g<<"NU\n";
        }
    }
    return 0;
}