Pagini recente » Cod sursa (job #377221) | Cod sursa (job #112508) | Cod sursa (job #3292465) | Cod sursa (job #2190654) | Cod sursa (job #2090023)
#include <iostream>
#include <stdio.h>
using namespace std;
int t[100001];
int tata(int x){
if(t[x]==x)
return x;
else{
t[x]=tata(t[x]);
return t[x];
}
}
void join(int x, int y){
int rx, ry;
rx=tata(x);
ry=tata(y);
t[rx]=ry;
}
int main() {
FILE *fin, *fout;
int a, b, i, o, n, m, op;
fin = fopen("disjoint.in", "r");
fout = fopen("disjoint.out", "w");
fscanf(fin,"%d%d", &n, &m);
for(i=1;i<=n;i++){
t[i]=i;
}
for(i=1;i<=m;i++){
fscanf(fin,"%d%d%d", &op, &a, &b);
if(op==1)
join(a, b);
else{
if(tata(a)==tata(b))
fprintf(fout,"DA\n");
else
fprintf(fout,"NU\n");
}
}
fclose(fin);
fclose(fout);
return 0;
}