Pagini recente » Cod sursa (job #252104) | Cod sursa (job #1055837) | Cod sursa (job #2945645) | Cod sursa (job #1934853) | Cod sursa (job #1748619)
#include <bits/stdc++.h>
#define Nmax 100005
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, m;
int Tata[Nmax];
int Find(int nod)
{
int cnod = nod;
int rad = nod;
while(Tata[cnod] != cnod)
{
nod = Tata[cnod];
Tata[cnod] = rad;
rad = nod;
}
return nod;
}
void Union(int x, int y)
{
Tata[y] = x;
Tata[x] = y;
}
void Solve()
{
int i, tip, x, y;
fin >> n >> m;
for(i = 1; i <= n; i++)
Tata[i] = i;
for(i = 1; i <= m; i++)
{
fin >> tip >> x >> y;
if(tip == 1)
Union(Find(x), Find(y));
else if(Find(x) == Find(y))
fout << "DA\n";
else fout << "NU\n";
}
}
int main()
{
Solve();
return 0;
}