Cod sursa(job #1830220)

Utilizator M.AndreiMuntea Andrei Marius M.Andrei Data 16 decembrie 2016 14:04:11
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
using namespace std;

ifstream f{ "disjoint.in" };
ofstream q{ "disjoint.out" };

int parent[100005];

int find(int x)
{
   if (parent[x] == x) return x;
   parent[x] = find(parent[x]);
   return parent[x];
}

int main()
{
   int n = 0, m = 0;
   int x, y, op;
   
   f >> n >> m;
   for (int i = 1; i <= n; ++i) parent[i] = i;
   for (int i = 1; i <= m; ++i)
   {
      f >> op >> x >> y;
      if (op == 1) parent[find(x)] = find(y);
      else (find(x) == find(y)) ? q << "DA\n" : q << "NU\n";
   }
   
   f.close();
   q.close();
   return 0;
}