Cod sursa(job #2750617)

Utilizator DooMeDCristian Alexutan DooMeD Data 12 mai 2021 14:51:09
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 f ("disjoint.in");
ofstream g ("disjoint.out");

int n,m;
int comp[100005];

int caut(int x) {
  if(comp[x]==x) return x;
  comp[x]=caut(comp[x]);
  return comp[x];
}

void un(int x,int y) {
  comp[caut(x)]=caut(y);
}

int main () {
  f >> n >> m;
  for(int i=1; i<=n; i++)
    comp[i] = i;
  for(int i=1; i<=m; i++) {
    int op,x,y;
    f >> op >> x >> y;
    if(op == 1) {
      un(x,y);
    }
    else {
      if(caut(x)==caut(y))
        g << "DA\n";
      else
        g << "NU\n";
    }
  }
  return 0;
}