Pagini recente » Cod sursa (job #606658) | Cod sursa (job #2868141) | Cod sursa (job #2911079) | Cod sursa (job #783867) | Cod sursa (job #1388659)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int N,M,i,j,tip,x,y,temp;
int v[100005];
int grupa(int);
void initializare();
int main()
{
f>>N>>M;
initializare();
for (int cont1=0;cont1<M;++cont1)
{
f>>tip>>x>>y;
switch (tip)
{
case 1:
{
v[grupa(x)]=v[grupa(y)];
break;
}
case 2:
{
if (v[grupa(x)]==v[grupa(y)])
g<<"DA"<<'\n';
else
g<<"NU"<<'\n';
}
}
}
f.close();g.close();
return 0;
}
void initializare()
{
for (i=1;i<=N;++i)
v[i]=i;
}
int grupa(int da)
{
if (v[da]==da) return da;
v[da]=grupa(v[da]);
return v[da];
}