Pagini recente » Cod sursa (job #631254) | Cod sursa (job #827047) | Cod sursa (job #619223) | Cod sursa (job #1755687) | Cod sursa (job #2976434)
#include <bits/stdc++.h>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
const int NMAX=2005;
int N,M,m;
int parent[NMAX];
int cnt[NMAX];
int root(int x){
m=x;
if(parent[x]==x)
return x;
return root(parent[x]);
parent[x]=m;
}
void comasare(int a, int b){
int ra,rb;
m=a;
ra=root(a);
rb=root(b);
if(ra==rb)
return ;
if(cnt[ra]<cnt[rb])
swap(ra,rb);
parent[rb]=ra;
cnt[ra]+=cnt[rb];
}
void query(int a, int b){
if(root(a)==root(b))
out<<"DA\n";
else
out<<"NU\n";
return ;
}
int main()
{
int i,x,y,c;
in>>N>>M;
for(i=1; i<=N; i++){
parent[i]=i;
cnt[i]=1;
}
for(i=1; i<=M; i++){
in>>c>>x>>y;
if(c==1)
comasare(x,y);
else
query(x,y);
}
return 0;
}