Pagini recente » Cod sursa (job #2799235) | Cod sursa (job #1433882) | Cod sursa (job #2442614) | Combinatorics shortlist | Cod sursa (job #1771250)
#include <iostream>
#include <cstdio>
using namespace std;
const int Nmax=200005;
int n,m,tata[Nmax],adancime[Nmax];
int radacina(int x)
{
while(x!=tata[x])
x=tata[x];
return x;
}
void citire()
{
scanf("%d%d",&n,&m);
int cerinta;
for(int i=1;i<=n;i++)
{
tata[i]=i;
adancime[i]=1;
}
for(int i=1;i<=m;i++)
{
int x,y;
scanf("%d%d%d",&cerinta,&x,&y);
if(cerinta==1)
{
if(adancime[radacina(x)]>=adancime[radacina(y)])
{
if(adancime[radacina(x)]==adancime[radacina(y)])
adancime[x]++;
tata[radacina(y)]=radacina(x);
}
else
tata[radacina(x)]=radacina(y);
}
else
{
if(radacina(x)==radacina(y))
printf("DA\n");
else
printf("NU\n");
}
}
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
citire();
//cout << "Hello world!" << endl;
return 0;
}