Cod sursa(job #3193051)

Utilizator ciupeiCiupei Matei ciupei Data 13 ianuarie 2024 21:11:15
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("date.in");

int M,N,cod,x,y;
int T[100005],k;

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

void legare(int x,int y)
{
    int kx = determinare(x);
    int ky = determinare(y);
    if(kx!=ky)
        T[ky]=kx;
}
int main()
{
    fin>>N>>M;
    for(int i=1;i<=M;i++)
    {
        fin>>cod>>x>>y;
        if(cod == 1)
        {
            legare(x,y);
        }
        else
        {
            if(determinare(x) == determinare(y))
                cout<<"DA"<<"\n";
            else
                cout<<"NU"<<"\n";

        }
    }
    for(int i=1;i<=M;i++)
    {
        cout<<T[i]<<" ";
    }
}