Pagini recente » Cod sursa (job #2877851) | Cod sursa (job #1388491) | Cod sursa (job #1629609) | Cod sursa (job #393974) | Cod sursa (job #2946936)
#include <cstdio>
using namespace std;
int tata[100002];
int sef(int x) {
if (x==tata[x]) {
return x;
}
return tata[x]=sef(tata[x]);
}
void uni (int a, int b) {
int sefa=sef(a);
int sefb=sef(b);
tata[sefb]=sefa;
}
int main()
{
int n, n1, n2, c, i, m;
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=0;i<m;i++) {
fscanf(fin, "%d%d%d" ,&c ,&n1 ,&n2);
if (c==1) {
uni(n1, n2);
}
else {
if (sef(n1)==sef(n2)) {
fprintf(fout, "DA\n");
}
else {
fprintf(fout, "NU\n");
}
}
}
return 0;
}