Cod sursa(job #2475021)

Utilizator greelioGreenio Greely greelio Data 16 octombrie 2019 07:33:43
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include<bits/stdc++.h>
#define N 100030

using namespace std;

int n,m, p[N];

int find(int x) {
    return (p[x]==x?x:p[x]=find(p[x]));
}

int main() {
    ifstream cin("disjoint.in");
    ofstream cout("disjoint.out");
    cin>>n>>m;

    for (int i=1; i<=n; i++) p[i]=i;
    while (m--) {
        int c,x,y;
        cin>>c>>x>>y;
        int a=find(x), b=find(y);
        if (c==1) {
            p[a]=b;
        } else {
            if (a==b) cout<<"DA\n";
            else cout<<"NU\n";
        };
    }
    return 0;
}