Cod sursa(job #2629773)

Utilizator LorenaMariaHantig Lorena LorenaMaria Data 22 iunie 2020 16:50:55
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int n,q,p[100001],v[100001];
int main()
{ in>>n>>q;
  while(q--)
  { int t,x,y;
    in>>t>>x>>y;
    if(t==1)
    { while(p[x]!=0)
        x=p[x];
      while(p[y]!=0)
        y=p[y];
      if(v[x]<v[y])
         swap(x,y);
      p[y]=x;
      v[x]+=v[y];
    }
    else
    { while(p[x]!=0)
        x=p[x];
      while(p[y]!=0)
        y=p[y];
      if(x==y)
         out<<"DA\n";
      else
         out<<"NU\n";
    }
  }
  in.close();
  out.close();
  return 0;
}