Cod sursa(job #2859018)

Utilizator bodox234Buga Bogdan bodox234 Data 28 februarie 2022 19:01:25
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;
int n,m,max_conex,T[32001],H[32001];
int Radacina(int k)
{ while(k!=T[k]) k=T[k];
    return k;
}
void Unire(int x, int y)
{ T[x]=y; }
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        {T[i]=i; H[i]=1;}
    while(m--)
    { int op,x,y;
      cin>>op>>x>>y;
      if(op==1)
        {int rx=Radacina(x);
         int ry=Radacina(y);
         if(rx!=ry)
            { if(H[rx]>H[ry])
                { T[ry]=rx;
                  H[rx]+=H[ry];
                }
                else
                    { T[rx]=ry;
                      H[ry]+=H[rx];
                    }
            }
        }
      if(op==2)
        { if(Radacina(x)==Radacina(y)) cout<<"DA\n"; else cout<<"NU\n";}
    }
    return 0;
}