Pagini recente » Cod sursa (job #191255) | Cod sursa (job #981338) | Rating paul sumedrea (sumi) | Cod sursa (job #800235) | Cod sursa (job #1394883)
#include <iostream>
#include <fstream>
using namespace std;
int sp[100],contor[100];
int find(int x)
{
if(sp[x]==x)
return x;
else
{
int bla=find(sp[x]);
if(sp[x]!=bla)
contor[bla]++;
return bla;
}
}
void unire(int x,int y)
{
int tx=find(x),ty=find(y);
if(contor[tx]>contor[ty])
sp[ty]=tx;
else
sp[tx]=ty;
}
int main()
{
int n,m,i,x,y;
ifstream f("disjoint.in");
f>>n>>m;
for(i=1;i<=n;i++)
sp[i]=i;
ofstream g("disjoint.out");
for(i=0;i<m;i++)
{
f>>x;
if(x==1)
{
f>>x>>y;
unire(x,y);
}
else
{
f>>x>>y;
if(find(x)==find(y))
g<<"DA\n";
else
g<<"NU\n";
}
}
return 0;
}