Pagini recente » Cod sursa (job #2639117) | Cod sursa (job #565808) | Cod sursa (job #239379) | Cod sursa (job #363316) | Cod sursa (job #1729870)
///O(n^2) wc - metoda arbore cu radacina
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int n, m, s[100002];
int find2(int x)
{
int i = x;
while (s[i]!=i)
i=s[i];
return i;
}
void reuniune2(int a, int b)
{
if(a<b)
s[b]=a;
else
s[a]=b;
}
int main()
{
int cod, x, y;
ifstream g ("disjoint.in");
ofstream h ("disjoint.out");
g>>n>>m;
for(int i=1;i<=n;++i)
s[i]=i;
for(int i=1;i<=m;++i)
{
g>>cod>>x>>y;
if(cod==1)
reuniune2(find2(x), find2(y));
else
{
if(find2(x)==find2(y))
h<<"DA\n";
else
h<<"NU\n";
}
}
g.close();
h.close();
return 0;
}