Pagini recente » Cod sursa (job #1079017) | Cod sursa (job #2183773) | Cod sursa (job #169335) | Cod sursa (job #1517978) | Cod sursa (job #1803477)
#include <stdio.h>
using namespace std;
FILE *fin = fopen("disjoint.in" , "r");
FILE *fout = fopen("disjoint.out" , "w");
int n, tata[100001], q,tip ,x ,y;
int finder(int x)
{
if(tata[x]==x) return x;
else
{
tata[x] = finder(tata[x]);
return tata[x];
}
}
void uniune(int x, int y)
{
int j = finder(y);
int i = finder(x);
tata[i]=j;
}
int main()
{
fscanf(fin , "%d" , &n);
for(int i=1; i<=n;i++)
{
tata[i]=i;
}
fscanf(fin , "%d", &q);
for(int i=1; i<=q; i++)
{
fscanf(fin , "%d%d%d", &tip, &x,&y);
if(tip == 1)uniune(x,y);
else
{
if(finder(x)==finder(y)) fprintf(fout , "DA\n");
else fprintf(fout, "NU\n");
}
}
return 0;
}