Pagini recente » Cod sursa (job #2860914) | Cod sursa (job #2275752) | Cod sursa (job #2051956) | Cod sursa (job #124632) | Cod sursa (job #1960043)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
const int Max = 100007;
int rad[Max], h[Max];
int kok(int nr)
{
int y = nr;
for(; nr != rad[nr]; nr =rad[nr]);
while(y != nr)
{
int aux = rad[y];
rad[y] = nr;
y = aux;
}
return nr;
}
int main()
{
int n, m, tip, x, y;
in >> n >> m;
for(int i = 1; i <= n; ++i)
{
rad[i] = i;
h[i] = i;
}
for(int i = 1; i <= m; ++i)
{
in >> tip >> x >> y;
if(tip == 1)
{
x = kok(x);
y = kok(y);
rad[y] = x;
if(h[x] == h[y])
h[x]++;
}
else if(kok(x) == kok(y))
out << "DA\n";
else
out << "NU\n";
}
}