Pagini recente » Cod sursa (job #136703) | Cod sursa (job #1153256) | Cod sursa (job #3243231) | Cod sursa (job #1615078) | Cod sursa (job #348355)
Cod sursa(job #348355)
#include <stdio.h>
#define DIM 100001
int T[DIM];
int n,m,i,x,y,cod;
FILE *f = fopen("disjoint.in","r");
FILE *g = fopen("disjoint.out","w");
void ask(int x, int y) {
int i,j;
i = x;
while (T[i]>0)
i = T[i];
j = y;
while (T[j]>0)
j = T[j];
if (i==j)
fprintf(g,"DA\n");
else
fprintf(g,"NU\n");
}
void reuneste(int x, int y) {
int i,j;
i = x;
while (T[i]>0)
i = T[i];
j = y;
while (T[j]>0)
j = T[j];
if (T[i]<T[j]) {
T[i] += T[j];
T[j] = i;
}
else {
T[j] += T[i];
T[i] = j;
}
}
int main() {
fscanf(f,"%d%d",&n,&m);
for (i=1; i<=n; i++)
T[i] = -1;
for (i=1; i<=m; i++) {
fscanf(f,"%d%d%d",&cod,&x,&y);
if (cod==1)
reuneste(x,y);
else
ask(x,y);
}
fclose(f);
fclose(g);
return 0;
}