Pagini recente » Cod sursa (job #665464) | Cod sursa (job #1606029) | Cod sursa (job #2071367) | Cod sursa (job #337258) | Cod sursa (job #871242)
Cod sursa(job #871242)
#include<stdio.h>
#include<vector>
using namespace std;
FILE*in=fopen("disjoint.in","r");
FILE*out=fopen("disjoint.out","w");
int noduri,query,boss[100001],nod;
int parcurge(int nod)
{
if(boss[nod]==nod)
return nod;
else
return (boss[nod]=parcurge(boss[nod]));
}
int main()
{
fscanf(in,"%d%d",&noduri,&query);
for(int i=1;i<=noduri;++i)
boss[i]=i;
for(int i=0;i<query;++i)
{
int tip,nod1,nod2;
fscanf(in,"%d",&tip);
fscanf(in,"%d%d",&nod1,&nod2);
if(tip==1)
boss[parcurge(nod2)]=parcurge(nod1);
else
if(parcurge(boss[nod1])==parcurge(boss[nod2]))
fprintf(out,"DA\n");
else
fprintf(out,"NU\n");
}
fclose(in);
fclose(out);
return 0;
}