Cod sursa(job #3338833)

Utilizator Octavian09Dore Octaviam Octavian09 Data 5 februarie 2026 10:04:40
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>

using namespace std;
const int NMAX=1000001;

int N,M,T[NMAX];

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

int Find(int x){
    if(T[x]==0) return x;
    return T[x]=Find(T[x]);
}

inline void Union(int rx,int ry){
    T[rx]=ry;
}

int main()
{
    int cod,x,y,rx,ry;
    f >> N >> M;
    while(M--){
        f >> cod >> x >> y;
        rx=Find(x);
        ry=Find(y);
        if(cod==1){
            Union(rx,ry);
        }else{
            if(rx==ry) g << "DA\n";
            else g << "NU\n";
        }
    }
    f.close();
    g.close();
    return 0;
}