Pagini recente » Cod sursa (job #2272430) | Cod sursa (job #1322150) | Cod sursa (job #2233683) | Cod sursa (job #130830) | Cod sursa (job #2039008)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
long int n,m,cod,x,y;
long int p[100005];
long int parinte(long int nod)
{
if(p[nod]==nod) return nod;
return p[nod]=parinte(p[nod]);
}
void unite(long int x, long int y)
{
p[parinte(x)]=parinte(y);
}
int main()
{
f >> n >> m;
for(int i=1; i<=n; i++)
{
p[i]=i;
}
for(int i=0; i<m; i++)
{
f >> cod >> x >> y;
if(cod==1)
{
unite(x,y);
}
if(cod==2)
{
long int p1,p2;
p1 = parinte(x);
p2 = parinte(y);
if(p1==p2) g << "DA \n";
else g << "NU \n";
}
}
return 0;
}