Cod sursa(job #715122)

Utilizator ioalexno1Alexandru Bunget ioalexno1 Data 16 martie 2012 18:20:15
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
#define nmax 100005
using namespace std;
int M[nmax],n,m;
int find(int ind)
{
if(M[ind]!=ind)return find(M[ind]);
    else return ind;
}
void reun(int a,int b)
{
M[a]=b;
}
int main()
{ int i,x,y,op;
freopen("disjoint.out","w",stdout);
freopen("disjoint.in","r",stdin); scanf("%d %d\n",&n,&m);
for(i=1;i<=n;++i)
    M[i]=i;
for(i=1;i<=m;++i)
    {
    scanf("%d %d %d\n",&op,&x,&y);
    if(op==1)reun(find(x),find(y));
        else {
             if(find(x)==find(y))printf("DA\n");
                    else printf("NU\n");
             }
    }
fclose(stdin);
fclose(stdout);
return 0;
}