Pagini recente » Cod sursa (job #1628478) | Cod sursa (job #1671291) | Cod sursa (job #907916) | Cod sursa (job #2611542) | Cod sursa (job #275639)
Cod sursa(job #275639)
#include<fstream.h>
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
#define max 100007
int t[max],r[max],n,m;
int mul(int x)
{if(t[x]!=x)t[x]=mul(t[x]);
return t[x];
}
void uneste(int x,int y)
{
x=mul(x);
y=mul(y);
if(x==y)return;
if(r[x]<r[y])t[x]=y;
else t[y]=x;
if(r[x]==r[y])r[y]++;
}
int main()
{int i,cod,x,y;
fin>>n>>m;
for(i=1;i<=n;i++)t[i]=i;
for(i=1;i<=m;i++)
{fin>>cod>>x>>y;
if(cod==1)uneste(x,y);
else if(mul(x)==mul(y))fout<<"DA\n";
else fout<<"NU\n";
}
fin.close();
fout.close();
return 0;
}