Cod sursa(job #2957433)

Utilizator AffectiveSmile2Mihnea Matea AffectiveSmile2 Data 22 decembrie 2022 16:32:13
Problema Paduri de multimi disjuncte Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
const int NMAX=500;
int T[NMAX+1];
int radacina(int k){
    if(T[k] == k)
        return k;
    else
        return radacina(T[k]);
}
void leaga(int x,int y)
{
    T[y]=x;
}
int main()
{
    int N,M,op,x,y,cx,cy;
    f>>N>>M;
    for(int i=1;i<=N;i++)
        T[i]=i;
    while(M--)
    {
        f>>op>>x>>y;
        ///cout<<op<<' '<<x<<' '<<y<<'\n';
        int r1=radacina(x);
        int r2=radacina(y);
        ///cout<<r1<<' '<<r2<<'\n';
        if(op==1&&r1!=r2)
            leaga(r1,r2);
        else if(op==2)
        {
            if(r1==r2)
                g<<"DA\n";
            else g<<"NU\n";
        }
        ///cout<<op<<' '<<x<<' '<<y<<'\n';
    }
    return 0;

}