Pagini recente » Cod sursa (job #2232184) | Cod sursa (job #3143170) | Cod sursa (job #1057947) | Cod sursa (job #1143783) | Cod sursa (job #1145066)
#include<stdio.h>
using namespace std;
FILE *f,*g;
struct nodul{
int p;
}nod[100001];
int parent(int x){
if (nod[x].p==x) return x;
else nod[x].p=parent(nod[x].p);
return nod[x].p;
}
bool find(int x,int y){
if (parent(x)==parent(y)) return 1;
else return 0;
}
void add(int x,int y){
x=parent(x);
y=parent(y);
nod[x].p=y;
}
int main(void){
int n,m,i,x,y,a;
f=fopen("disjoint.in","r");
g=fopen("disjoint.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++) nod[i].p=i;
for(i=1;i<=m;i++){
fscanf(f,"%d%d%d",&a,&x,&y);
if (a==1) add(x,y);
else if (find(x,y)) fprintf(g,"DA\n");
else fprintf(g,"NU\n");
}
}