Pagini recente » Cod sursa (job #1569610) | Cod sursa (job #2219123) | Cod sursa (job #1218655) | tema | Cod sursa (job #2390550)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int comp[100000],nod_comp[10000][10000],n;
void reuniune(int x, int y)
{
if(nod_comp[x][0]>=nod_comp[y][0])
{
int aux=comp[y];
for(int i=1;i<=n;i++)
if(comp[i]==aux) {comp[i]=comp[x];
nod_comp[x][0]++;
nod_comp[x][nod_comp[x][0]]=i;}
}
}
int main()
{
int m;
fin>>n>>m;
for(int i=1;i<=n;i++)
{
comp[i]=i;
nod_comp[i][0]++;
nod_comp[i][nod_comp[i][0]]=i;
}
for(int i=1;i<=m;i++)
{
int cod,x,y;
fin>>cod>>x>>y;
if(cod==1) reuniune(x,y);
if(cod==2)
{
if(comp[x]==comp[y]) fout<<"DA\n";
else fout<<"NU\n";
}
}
return 0;
}