Cod sursa(job #2964542)

Utilizator Shadow_bladeCeapa Andrei Shadow_blade Data 13 ianuarie 2023 10:14:32
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int n,m,t[100000];
int tata(int x){
if(t[x]==x) return x;
else return tata(t[x]);
}
void reuniune(int x,int y){
int tx=tata(x);
int ty=tata(y);
if(tx!=ty)t[ty]=tx;
}
int test(int x,int y){
    int tx=tata(x);
    int ty=tata(y);
    return tx==ty;
}
void citire(){
cin>>n>>m;
for(int i=1;i<=n;i++)t[i]=i;
while(m--){
    int tip,x,y;
    cin>>tip>>x>>y;
    if(tip==1) reuniune(x,y);
    else
        cout<<(test(x,y)?"DA\n":"NU\n");
}
}
int main()
{
citire();
return 0;
}