Pagini recente » Cod sursa (job #984996) | Cod sursa (job #2530656) | Cod sursa (job #2849255) | Cod sursa (job #1785238) | Cod sursa (job #3350489)
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int card[100001];
int rad[100001];
void unionberlin(int a,int b)
{
if(card[a]<card[b])
{
swap(a,b);
}
card[a]+=card[b];
rad[b]=a;
}
int findd(int x)
{
if(rad[x]==x)
{
return x;
}
rad[x]=findd(rad[x]);
return rad[x];
}
int main()
{
int n,m,cod,e,f;
in>>n>>m;
for(int i=1; i<=n; i++)
{
rad[i]=i;
card[i]=1;
}
for(int i=1; i<=m; i++)
{
in>>cod>>e>>f;
if(cod==1)
{
int f2=findd(f);
int e2=findd(e);
unionberlin(e2,f2);
}
else
{
int f2=findd(f);
int e2=findd(e);
if(e2==f2)
{
out<<"DA"<<endl;
}
else
{
out<<"NU"<<endl;
}
}
}
return 0;
}