Pagini recente » Rating Albert Akos (akosalbert) | Istoria paginii utilizator/14kaizzer88 | Cod sursa (job #2310014) | Istoria paginii utilizator/tudor102 | Cod sursa (job #974314)
Cod sursa(job #974314)
#include <fstream>
#define In "disjoint.in"
#define Out "disjoint.out"
#define Nmax 100010
using namespace std;
int Father[Nmax];
inline int Find(const int x)
{
if(Father[x]!=x)
Father[x] = Find(Father[x]);
return Father[x];
}
inline void Union(const int x,const int y)
{
Father[x] = y;
}
int main()
{
int op, i, x, y, N, M;
ifstream f(In);
ofstream g(Out);
f>>N>>M;
for(i=1;i<=N;++i)
Father[i] = i;
while(M--)
{
f>>op>>x>>y;
x = Find(x);
y = Find(y);
if(op==1)
Union(x,y);
else
g<<(x==y?"DA\n":"NU\n");
}
return 0;
}