Pagini recente » Cod sursa (job #547341) | Cod sursa (job #1962013) | Cod sursa (job #418484) | Cod sursa (job #1995310) | Cod sursa (job #294757)
Cod sursa(job #294757)
#include <fstream.h>
int t[10001],a[10001];
int N,M;
int c(int x)
{int r=x,y;
while(t[r]!=r)
r=t[r];
while(t[x]!=x)
{y=t[x];
t[x]=r;
x=y;}
return r;
}
void u(int x,int y)
{if(a[x]>a[y])
t[y]=x;
else
t[x]=y;
if(a[x]==a[y]) ++a[y];
}
int main()
{ifstream f("disjoint.in");
ofstream g("disjoint.out");
int i,cod,x,y;
f>>N>>M;
for(i=1;i<=N;++i)
{t[i]=i;
a[i]=1;
}
for(;M;--M)
{f>>cod>>x>>y;
int rx=c(x),ry=c(y);
if(cod==1)
u(rx,ry);
else
if(rx==ry)
g<<"DA\n";
else
g<<"NU\n";
}
return 0;
}