Pagini recente » Cod sursa (job #1526672) | Cod sursa (job #1007960) | Cod sursa (job #930477) | Cod sursa (job #181212) | Cod sursa (job #292449)
Cod sursa(job #292449)
#include<fstream.h>
int t[100005],r[100005];
int main()
{
int n,op,m,i,k,a,b,x,y;
ifstream f("disjoint.in");
f>>n>>m;
for (i=1;i<=n;i++)
{
t[i]=i;
r[i]=1;
}
ofstream g("disjoint.out");
for (i=1;i<=m;i++)
{
f>>op>>a>>b;
if (op==1) {
while(t[a]!=a)
a=t[a];
while(t[b]!=b)
b=t[b];
if (r[a]>r[b]) t[b]=a;
else t[a]=b;
if (r[a]==r[b]) r[b]++;
}
else
{
x=a;
y=b;
while(t[x]!=x)
x=t[x];
while(t[y]!=y)
y=t[y];
if (x==y) g<<"DA"<<'\n';
else g<<"NU"<<'\n';
while (t[a]!=x)
{
k=t[a];
t[a]=x;
a=k;
}
while (t[b]!=y)
{
k=t[b];
t[b]=y;
b=k;
}
}
}
g.close();
f.close();
return 0;
}