Pagini recente » Cod sursa (job #2457036) | Cod sursa (job #2225341) | Cod sursa (job #2316557) | Cod sursa (job #1375638) | Cod sursa (job #274952)
Cod sursa(job #274952)
#include<fstream.h>
ifstream f("disjoint.in");
ofstream g("disjoint.out");
const long Nmax=100100;
long n,m,h[Nmax],t[Nmax];
void verif(long x,long y)
{
if(t[x]==t[y])
g<<"DA"<<'\n';
else
g<<"NU"<<'\n';
}
void reun(long x,long y)
{
if(h[x]<h[y])
{
long z=x;
x=y;
y=z;
}
long z=t[y];
h[x]+=h[y];
long q=h[y];
for(long j=1;j<=n && q;j++)
if(t[j]==z)
{
t[j]=t[x];
h[j]=h[x];
q--;
}
}
void init()
{
for(long i=1;i<=n;i++)
{
t[i]=i;
h[i]=1;
}
}
void citire()
{
int z;
long x,y;
f>>n>>m;
init();
for(long i=0;i<m;i++)
{
f>>z>>x>>y;
switch(z)
{
case 1: reun(x,y);
break;
case 2: verif(x,y);
break;
}
}
}
int main()
{
citire();
f.close();
g.close();
return 0;
}