Pagini recente » Diferente pentru problema/darb intre reviziile 6 si 5 | Borderou de evaluare (job #1598420) | Cod sursa (job #2012753) | Cod sursa (job #3322584) | Cod sursa (job #3312780)
/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int parent[100005];
int tell_parent(int a)
{
if(a==parent[a])
{
return a;
}
return parent[a]=tell_parent(parent[a]);
}
void join(int a, int b)
{
a=tell_parent(a);
b=tell_parent(b);
if(a!=b)
parent[b]=parent[a];
}
int main()
{
int n, m, c, a, b;
fin >> n >> m;
for(int i=1; i<=n; i++)
{
parent[i]=i;
}
for(int i=1; i<=m; i++)
{
fin >> c >> a >> b;
if(c==1)
{
join(a, b);
}
else
{
if(tell_parent(a)==tell_parent(b))
fout << "DA" << "\n";
else
fout << "NU" << "\n";
}
}
return 0;
}