Pagini recente » Cod sursa (job #862752) | Cod sursa (job #2518289) | Cod sursa (job #1341907) | Cod sursa (job #2271223) | Cod sursa (job #2373522)
#include<bits/stdc++.h>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int T[100001],P[100001],rx,ry,i,n,m,cod,x,y,j,pas;
int root(int x)
{
while(x!=T[x])
x=T[x];
return x;
}
void uneste(int x,int y)
{
if(P[x]<P[y])
T[x]=y;
if(P[y]<P[x])
T[y]=x;
if(P[x]==P[y])
T[y]=x,P[x]++;
}
int main ()
{
f>>n>>m;
for(i=1;i<=n;i++)
T[i]=i;
for(i=1;i<=m;i++)
{
f>>cod>>x>>y;
if(cod==1)
{
rx=root(x);
ry=root(y);
if(rx!=ry)
uneste(rx,ry);
}
else
{
rx=root(x);
ry=root(y);
if(rx==ry)
g<<"DA"<<'\n';
else
g<<"NU"<<'\n';
}
}
return 0;
}