Cod sursa(job #1333511)

Utilizator AeroHHorea Stefan AeroH Data 3 februarie 2015 11:41:17
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int i,N,M,c,x,y;
int v[100001];

int fi(int x){return (v[x]==x?x:v[x]=fi(v[x]));}
void u(int x,int y){v[fi(x)]=fi(y);}

int main()
{
   f>>N>>M;

   for (i=1;i<=N;++i)v[i]=i;

    while (M--)
        {   f>>c>>x>>y;
            if (c == 2)
                if (fi(x)==fi(y))g<<"DA\n";else g<<"NU\n";
            else u(x,y);
        }

    return 0;
}