Cod sursa(job #3247527)

Utilizator postoocezar andrei mihai tutunaru tambozi teodor lot postoo Data 8 octombrie 2024 10:50:52
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.14 kb
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <fstream>

using namespace std;

int parinte[100005];

int find (int g){
    if(parinte[g]!=g)
        return parinte [g] = find(parinte[g]);
    return g;
}



void unite (int a  , int b){
    a=find (a);
    b=find (b);
    if(a != b )parinte[a] = b;
    return;
    
    
}


int main()
{
    ifstream cin ("disjoint.in");
    ofstream cout ("disjoint.out");
    int n , m;
    cin >> n >> m;
    for(int i=0;i < n ; i ++){
        parinte[i]=i;
    }
    
    int a , b ,c;
    for(int i=0;i < m;i ++){
        cin >> a >> b >>c ;
        if(a==1){
            unite ( b , c);
        }else {
            if(find ( b ) == find (c)){
                cout << "DA\n";
            }else {
                cout <<  "NU\n";
            }
        }
        
    }
    return 0;
}