Pagini recente » Cod sursa (job #993581) | Cod sursa (job #3207256) | Cod sursa (job #20323) | Cod sursa (job #729500) | Cod sursa (job #871607)
Cod sursa(job #871607)
#include<fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int i,x,y,z,m,n,T[100001],R[100001];
int tata(int x)
{
if (T[x]!=x) return tata(T[x]);
return x;
}
void uneste(int x,int y)
{
if (R[x]>R[y]) T[y]=x;
else T[x]=y;
if (R[x]==R[y]) R[y]++;
}
int main()
{
in>>n>>m;
for (i=1;i<=n;i++)
{
T[i]=i;
R[i]=1;
}
for (i=1;i<=m;i++)
{
in>>x>>y>>z;
if (x==1) uneste(tata(y),tata(z));
else if(tata(y)==tata(z)) out<<"DA\n";
else out<<"NU\n";
}
}