Pagini recente » Cod sursa (job #1405054) | Cod sursa (job #694638) | Cod sursa (job #1312739) | Cod sursa (job #890681) | Cod sursa (job #2371488)
#include <fstream>
using namespace std;
ifstream fi("disjoint.in");
ofstream fo("disjoint.out");
const int nmax=1e5;
int n, m;
int tata[nmax+5];
int find_set(int x)
{
if(x==tata[x])
return x;
int r=find_set(tata[x]);
tata[x]=r;
return r;
}
void merge_set(int x, int y)
{
int r1=find_set(x), r2=find_set(y);
tata[r2]=r1;
}
int main()
{
fi>>n>>m;
for(int i=1; i<=n; i++)
tata[i]=i;
while(m--)
{
int cod, x, y;
fi>>cod>>x>>y;
if(cod==1)
merge_set(x, y);
else
{
int sx, sy;
sx=find_set(x);
sy=find_set(y);
if(sx==sy)
fo<<"DA\n";
else
fo<<"NU\n";
}
}
fi.close();
fo.close();
return 0;
}