Pagini recente » Cod sursa (job #1857015) | Cod sursa (job #2385883) | Cod sursa (job #2566412) | Cod sursa (job #3218255) | Cod sursa (job #3176817)
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
vector<int> rng;
vector<int>par;
int n,m;
int fi(int nod)
{
if(par[nod]==nod)
return nod;
par[nod]=fi(par[nod]);
return par[nod];
}
int main()
{
fin>>n>>m;
par.resize(n+1);
rng.resize(n+1,1);
for(int k=1;k<=n;k++)
par[k]=k;
int cer,x1,x2;
for(int k=1;k<=m;k++)
{
fin>>cer>>x1>>x2;
if(cer==2)
fout<<(fi(x1)==fi(x2)?"DA":"NU")<<'\n';
else
{
if(rng[x1]<rng[x2])
par[fi(x1)]=fi(x2);
else
{
par[fi(x2)]=fi(x1);
rng[par[x2]]++;
}
}
}
return 0;
}