Cod sursa(job #1797339)

Utilizator radu.leonardoThe Doctor radu.leonardo Data 4 noiembrie 2016 11:40:56
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int v[100001],n,m,t,x,y;
int root(int i)
{
    while(i!=v[i]) v[i]=v[v[i]],i=v[i];
    return i;
}
void unite(int p,int q)
{ v[root(p)]=root(q);

}
int main()
{f>>n>>m;int i;
 for(i=1;i<=n;i++) v[i]=i;
 for(i=1;i<=m;i++)
 {f>>t>>x>>y;
  if(t==1) unite(x,y);

  else
    { if(root(x)==root(y)) g<<"DA\n";
      else g<<"NU\n";
    }


 }

}