Cod sursa(job #1581744)
| Utilizator | Data | 27 ianuarie 2016 09:06:22 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <cstdio>
#define NMax 100005
using namespace std;
int root[NMax];
int x,y,n,m,p;
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i = 1; i <= m; ++i){
scanf("%d%d%d",&p,&x,&y);
if(p == 1){
root[y] = x;
}else{
int w = y;
while(root[w] != 0)
w = root[w];
int t = x;
while(root[t] != 0)
t = root[t];
if(t != w){
printf("NU\n");
}else
printf("DA\n");
}
}
return 0;
}
