Cod sursa(job #2171177)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 15 martie 2018 11:28:23
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
using namespace std;
ifstream f ("disjoint.in");
ofstream g ("disjoint.out");
const int nmax=1e5+3;
int t[nmax],n,tp,tip,a,b;
inline int usu(int x)
{
      if(t[x]==x) return x;
      t[x]=usu(t[x]);
      return t[x];
}
int main()
{
      f>>n>>tp;
      for(int i=1;i<=n;++i) t[i]=i;
      while(tp--)
      {
            f>>tip>>a>>b;
            if(tip==1)
            {
                  t[usu(a)]=usu(b);
                  continue;
            }
            else
            {
                  if(usu(a)==usu(b)) g<<"DA\n";
                  else g<<"NU\n";
            }
      }
      return 0;
}