Pagini recente » Cod sursa (job #376628) | Cod sursa (job #2782328)
#include <bits/stdc++.h>
#define din cin
#define dout out
#define pi 3.14159265359d
#define sw(x,y) x^=y,y^=x,x^=y
#define bmin(a,b)((a<b)?a:b)
#define bmax(a,b)((a>b)?a:b)
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
long long n,m,i,j,a[100001],b[100001],x,y,*z;char c;
void p(){
y=x;
while(x!=a[x])x=a[x];
while(y!=a[y])z=&a[y],y=a[y],*z=x;
}
int main()
{
for(i=0;i<100001;i++)a[i]=i,b[i]=1;
in>>n>>m;
while(m--)
{
in>>c>>i>>j;
x=i,p();y=j,p();
if(c=='1')
{
if(a[i]!=a[j])
{
if(b[a[i]]>b[a[j]])
b[a[i]]+=b[a[j]],a[a[j]]=a[i];
else b[a[j]]+=b[a[i]],a[a[i]]=a[j];
}
}
else out<<((a[i]==a[j])?"DA\n":"NU\n");
}
}