Pagini recente » Cod sursa (job #2604903) | Cod sursa (job #3255905) | Cod sursa (job #915887) | Cod sursa (job #1200590) | Cod sursa (job #1041704)
#include<iostream>
#include<fstream>
#include<cstdio>
using namespace std;
int v[100001],n,m;
int cauta (int a)
{
while(a!=v[a])
{
a=v[a];
}
return a;
}
void uneste(int a,int b)
{
int x,y;
x=cauta(a);
y=cauta(b);
v[y]=x;
}
int main()
{
FILE *f,*g;
f= fopen("disjoint.in","r");
g= fopen("disjoint.out","w");
int a,b,c;
fscanf (f,"%d%d",&n,&m);
for(int i=1;i<=n;i++)
v[i]=i;
for(int i=1;i<=m;i++)
{
fscanf (f,"%d%d%d",&a,&b,&c);
if(a==1)
{
uneste(b,c);
}
else
if(cauta(c)==cauta(b))
fprintf (g,"DA \n");
else
fprintf (g,"NU \n");
}
fclose(f),fclose(g);
return 0;
}