Pagini recente » Cod sursa (job #1529766) | Cod sursa (job #2740295) | Cod sursa (job #3259085) | Cod sursa (job #2800813) | Cod sursa (job #2504550)
#include<cstdio>
using namespace std;
int n, m, i, op, tata[100001], x, y;
int findtata(int x)
{
if(x == tata[x])
return x;
else
return tata[x] = findtata(tata[x]);
}
void uniune(int x, int y)
{
int sefx, sefy;
sefx = findtata(x);
sefy = findtata(y);
tata[sefx] = sefy;
}
int main()
{
FILE *fin, *fout;
fin=fopen("disjoint.in" ,"r");
fout=fopen("disjoint.out" ,"w");
fscanf(fin, "%d%d" ,&n ,&m);
for(i = 1; i <= n; i ++)
tata[i] = i;
for(i = 1; i <= m; i ++)
{
fscanf(fin, "%d%d%d" ,&op ,&x ,&y);
if(op == 1)
uniune(x, y);
else
if(findtata(x) == findtata(y))
fprintf(fout, "DA\n");
else
fprintf(fout, "NU\n");
}
return 0;
}