Pagini recente » Cod sursa (job #1716808) | Cod sursa (job #48733) | Cod sursa (job #2928044) | Clasament drastik_challange_1 | Cod sursa (job #2273150)
#include <iostream>
#include <fstream>
using namespace std;
#define N 100100
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int g[N],i,n,m,x,y,Gx,Gy,task;
int Grupa(int x)
{
while(x != g[x])
{
g[x] = Grupa(g[x]);
x = g[x];
}
return x;
}
void Union(int x,int y)
{
int a = Grupa(x), b = Grupa(y);
if(a < b)
g[b] = a;
else
g[a] = b;
}
int main()
{
fin >> n >> m;
for (i = 0; i < n; ++i)
g[i+1] = i+1;
for (i = 0 ;i < m; ++i)
{
fin >> task >> x >> y;
if(task > 1)
{
Gx = Grupa(x);
Gy = Grupa(y);
if(Gx == Gy)
fout << "DA" << '\n';
else
fout << "NU" << '\n';
}
else
Union(x,y);
}
return 0;
}