Pagini recente » Cod sursa (job #369933) | Cod sursa (job #2600955) | Cod sursa (job #371488) | Cod sursa (job #398701) | Cod sursa (job #2534997)
#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 nod)
{
if(tata[nod]==nod)
return nod;
int r=find_set(tata[nod]);
tata[nod]=r;
return r;
}
void merge_set(int x, int y)
{
int r1=find_set(x), r2=find_set(y);
tata[r1]=r2;
}
int main()
{
fi>>n>>m;
for(int i=1; i<=n; i++)
tata[i]=i;
for(int i=1; i<=m; i++)
{
int op, x, y;
fi>>op>>x>>y;
if(op==1)
merge_set(x, y);
else
{
int r1=find_set(x), r2=find_set(y);
if(r1==r2)
fo<<"DA\n";
else
fo<<"NU\n";
}
}
fi.close();
fo.close();
return 0;
}