Pagini recente » Cod sursa (job #758370) | Cod sursa (job #2147730) | Cod sursa (job #2354743) | Cod sursa (job #1175009) | Cod sursa (job #1542476)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int tata[100005];
int find(int x)
{
int t;
for(t = x; tata[t] != t; t = tata[t]);
for(int i = x; i != t; )
{
int a = tata[i];
tata[i] = t;
i = a;
}
return t;
}
int unesc(int x,int y)
{
int tx = find(x);
int ty = find(y);
tata[ty] = tx;
}
void query(int x, int y)
{
if (find(x) == find(y))
g<<"DA"<<'\n';
else
g<<"NU"<<'\n';
}
int main()
{
int n,m;
f >> n >> m;
for(int i = 1; i<=n; i++)
tata[i] = i;
for(int i = 1; i<=m; i++)
{
int type,x,y;
f >> type >> x >> y;
if (type == 1)
unesc(x,y);
else
query(x,y);
}
return 0;
}