Pagini recente » Cod sursa (job #954102) | Cod sursa (job #2782660) | Cod sursa (job #1416206) | Cod sursa (job #2405036) | Cod sursa (job #1046177)
#include <cstdio>
#include <iostream>
#define Nmax 100020
using namespace std;
int Arb[Nmax];
int cautare (int a)
{
while(a!=Arb[a])
a=Arb[a];
return a ;
}
void unire (int x, int y)
{
int a,b;
a=cautare(x);
b=cautare(y);
Arb[b]=a;
}
int main()
{
FILE *f,*g;
f=fopen("disjoint.in","r");
g=fopen("disjoint.out","w");
int n,m;
fscanf(f,"%d %d",&n,&m);
int i,x,y,cod;
for (i=1;i<=n;i++)
{
Arb[i]=i;
}
for (i=1;i<=m;i++)
{
fscanf(f,"%d %d %d",&cod,&x,&y);
if(cod==2)
{
if (cautare(x)==cautare(y))
fprintf(g,"DA\n");
else fprintf(g,"NU\n");
}
else
unire(cautare(x),cautare(y));
}
fclose(f);
fclose(g);
return 0;
}