Cod sursa(job #2258451)

Utilizator andrei5000Andrei Alin andrei5000 Data 11 octombrie 2018 14:28:56
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>

using namespace std;

ifstream f("disjoint.in");
ofstream g("disjoint.out");

int cod,x,y,n,m,i,R[100001];

int T(int k){
    if(R[k]==k) return k;
    else {int p = T(R[k]); R[k] = p; return p;}
}

int main()
{
    f >> n >> m;
    for(i=1;i<=n;i++)
        R[i] = i;
    for(i=1;i<=m;i++){
        f >> cod >> x >> y;
        if(cod==1) {R[max(x,y)]=R[min(x,y)];T[max(x,y)];}
        else if(T(x)==T(y)) g << "DA\n";
        else g << "NU\n";}

    return 0;
}