Pagini recente » Cod sursa (job #1773269) | Atasamentele paginii Clasament 987654321 | Cod sursa (job #199247) | Cod sursa (job #1608914) | Cod sursa (job #1387320)
#include <fstream>
#define DIM 100003
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int N,M,v[DIM],r[DIM];
int caut(int x){
int z;
for(z=x;z!=v[z];z=v[z]);
int y;
while(x!=v[x]){
y=v[x];
v[x]=z;
x=y;
}
return z;
}
void unesc(int x,int y){
if(r[x]<r[y])
v[x]=y;
else
v[y]=x;
if(r[x]==r[y])
r[x]++;
}
int main(){
fin>>N>>M;
for(int i=1;i<=N;i++){
v[i]=i;
r[i]=1;
}
while(M--){
int c,x,y;
fin>>c>>x>>y;
if(c==1)
unesc(caut(x),caut(y));
else
if(caut(x)==caut(y))
fout<<"DA\n";
else
fout<<"NU\n";
}
fin.close();fout.close();
return 0;
}