Cod sursa(job #3181061)

Utilizator Cazacu2006RazvanRazvan Cazacu Cazacu2006Razvan Data 6 decembrie 2023 13:15:27
Problema Paduri de multimi disjuncte Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>

using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,k,tata[100001],x,y,t,r[100001];
int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++){
        tata[i]=-1;
        r[i]=i;
    }
    for(int i=1;i<=k;i++)
    {
        fin>>t>>x>>y;
        if(t==1)
        {




            if(tata[r[x]]>tata[r[y]])
                swap(x,y);
            tata[r[x]]+=tata[r[y]];
            while(tata[y]>0)
            {
                r[y]=r[x];
                y=tata[y];

            }
            tata[r[y]]=x;
            r[r[y]]=r[x];



        }
        else
        {
            if(r[x]==r[y])
            {
                fout<<"DA"<<"\n";
            }
            else
                fout<<"NU"<<"\n";
        }
    }


    return 0;
}