Cod sursa(job #2365822)

Utilizator Razvan85Secure Razvan Razvan85 Data 4 martie 2019 16:40:59
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int i,t[100001],h[100001],b,c,a,n,m;
int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++)
        {
        t[i]=i;
        h[i]=1;
        }
    for(i=1;i<=m;i++)
    {
        f>>a>>b>>c;
        if(a==1)
        {
         //cb=b,cc=c;
         while(t[b]!=b)
            b=t[b];
         while(t[c]!=c)
            c=t[c];
         if(h[b]>=h[c])
            {
             t[c]=b;
             h[b]=h[c]+h[b];
            }
         else
            {
             t[b]=c;
             h[c]=h[c]+h[b];
            }
         }
         else
         {
             while(t[b]!=b)
                b=t[b];
             while(t[c]!=c)
                c=t[c];
             if(b==c)
                g<<"DA"<<'\n';
             else
                g<<"NU"<<'\n';
         }
    }
    return 0;
}