Cod sursa(job #2063934)
| Utilizator | Data | 11 noiembrie 2017 17:06:45 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.69 kb |
#include <iostream>
#include <stdio.h>
using namespace std;
int radacina(int x, int p[])
{
while(p[x]!=x)
x=p[x];
return x;
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
int x,y,op,p[100000]={0},n,m;
bool ok;
cin>>n>>m;
for(int i=1; i<=n; i++)
p[i]=i;
for(int i=1; i<=m; i++)
{
scanf("%d %d %d \n",&op, &x, &y);
if(op==1)
{
p[y]=x;
}
else
{
if(radacina(x,p)==radacina(y,p))
printf("DA \n");
else
printf("NU \n");
}
}
return 0;
}
