Pagini recente » Cod sursa (job #872642) | Cod sursa (job #2845938) | Cod sursa (job #1773388) | Cod sursa (job #124900) | Cod sursa (job #899918)
Cod sursa(job #899918)
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<queue>
using namespace std;
FILE*in=fopen("disjoint.in","r");
FILE*out=fopen("disjoint.out","w");
int noduri,muchii,tata[100001];
int getRadacina(int nod);
int main()
{
fscanf(in,"%d%d",&noduri,&muchii);
int type,nod1,nod2;
for(int oo=1;oo<=muchii;++oo)
{
fscanf(in,"%d%d%d",&type,&nod1,&nod2);
if(type==1)
{
int w=getRadacina(nod1);
int q=getRadacina(nod2);
if(w!=q)
tata[w]=q;
}
else
{
if(getRadacina(nod1)==getRadacina(nod2))
fprintf(out,"DA\n");
else
fprintf(out,"NU\n");
}
}
fclose(in);
fclose(out);
return 0;
}
int getRadacina(int nod)
{
if(tata[nod])
{
tata[nod]=getRadacina(tata[nod]);
return tata[nod];
}
else
return nod;
}