Pagini recente » Cod sursa (job #2825275) | Cod sursa (job #2961910) | Cod sursa (job #1363761) | Cod sursa (job #2530407) | Cod sursa (job #2943208)
#include <fstream>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
int n, m, tata[100005];
//Cautam tatal unui nod
int op2(int nod)
{
if(tata[nod] == nod)
return nod;
tata[nod] = op2(tata[nod]);
return tata[nod];
}
//Reuniunea a 2 mulimi
void op1(int nod1, int nod2) {
int r1 = op2(nod1);
int r2 = op2(nod2);
tata[r2] = r1;
}
int main()
{
fin>>n>>m;
for(int i=1; i<=n; i++)
tata[i] = i;
for(int i=0;i<m;i++)
{
int op, x, y;
fin>>op>>x>>y;
if(op==1)
op1(x, y);
else
{
if(op2(x) == op2(y))
fout<<"DA"<<"\n";
else
fout<<"NU"<<"\n";
}
}
fin.close();
fout.close();
//Complexitatea O(nm)
return 0;
}