Pagini recente » Cod sursa (job #159243) | Cod sursa (job #2346781) | Cod sursa (job #450212) | Cod sursa (job #618605) | Cod sursa (job #2763051)
#include <fstream>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
int t[100001], n, m, tip, a, b;
int find_tata(int x)
{
if(t[x]==x)
{
return x;
}
t[x]=find_tata(t[x]);
return t[x];
}
void reuniune(int x, int y)
{
int tatal_x=find_tata(x);
int tatal_y=find_tata(y);
if(tatal_x != tatal_y)
{
t[tatal_x]=tatal_y;
}
}
int main()
{
fin>>n;
for(int i=1; i<=n; i++)
t[i]=i;
fin>>m;
for(int i=1; i<=m; i++)
{
fin>>tip>>a>>b;
if(tip==1)
{
reuniune(a, b);
}
else
{
if(find_tata(a)==find_tata(b))
fout<<"DA"<<'\n';
else fout<<"NU"<<'\n';
}
}
return 0;
}