Cod sursa(job #2152416)

Utilizator VarticeanNicolae Varticean Varticean Data 5 martie 2018 15:27:03
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int parent[100005],n,m;

int Find( int x )
{
     if( parent[x] == x )
     {
          return x;
     }
     return Find( parent[x]);
}
void Union( int x, int y )
{
     int a = Find(x);
     int b = Find(y);
     parent[a] = b;
}
int main()
{
     in >> n >> m ;
    for(int i=1; i<=n; i++) parent[i] = i;
    int qw, x,y;
    for(int i=1; i<=m; i++)
    {
         in >> qw >> x >> y;
         if( qw == 1 )
              Union(x,y); else
              if( Find(x) != Find(y) ) out << "NU" <<'\n'; else out << "DA" << '\n';
    }
    return 0;
}