Cod sursa(job #2302666)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 14 decembrie 2018 23:10:03
Problema Paduri de multimi disjuncte Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include<stdio.h>
int n,m,y,z,p[100001],r[100001];
int main() 
{
    freopen("disjoint.in","r",stdin),freopen("disjoint.out","w",stdout),scanf("%d%d",&n,&m);
    for(y=1;y<=n;y++)
        p[y]=y;
    while(m--) 
	{
        scanf("%d%d%d",&n,&y,&z);
		for(;p[y]!=y;y=p[y]);
		for(;p[z]!=z;z=p[z]);
        if(n==1)
		{
            if(r[y]>r[z])
            	p[z]=y;
            else
            	p[y]=z;
            if(r[y]==r[z])
                r[z]++;
        }
        else
            printf("%s\n",y==z?"DA":"NU");
    }
}