Pagini recente » Cod sursa (job #531972) | Cod sursa (job #2101392) | Cod sursa (job #1508089) | Borderou de evaluare (job #528072) | Cod sursa (job #883727)
Cod sursa(job #883727)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
long n;
long h[100000];
long t[100000];
long u;
inline int drum (int nod)
{
while(t[nod])
nod=t[nod];
return nod;
}
void paduri(int c, int x,int y)
{
int v1=drum(x);
int v2=drum(y);
if(c==1)
{
if(v1!=v2)
{
if(h[v1]==h[v2])
{
t[x]=y;
h[v1]++;
}
else
if(h[x]<h[y])
t[x]=y;
else
t[y]=x;
}
else;
}
else
if(v1==v2)
fout<<"DA"<<'\n';
else
fout<<"NU"<<'\n';
}
void cit()
{
fin>>n>>u;
}
int main()
{
int i;
cit();
int c,x,y;
// fout<<n<<" "<<u<<'\n';
for(i=1;i<=u;i++)
{
fin>>c>>x>>y;
paduri(c,x,y);
//fout<<c<<" "<<x<<" "<<y<<'\n';
}
// fout<<'\n';
return 0;
}