Cod sursa(job #3332952)

Utilizator Afilipoae_TeodorAfilipoae Teodor Cezar Afilipoae_Teodor Data 10 ianuarie 2026 09:53:49
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
#define NMAX 100005

ifstream fin("disjoint.in");
ofstream fout("disjoint.out");

int i,j;

int n,m,tip,x,y;
int t[NMAX];


int gaseste(int x)
{
  if(t[x]==x)
  {
      return x;
  }
  return t[x]=gaseste(t[x]);
}

void unire(int u, int v)
{
u=gaseste(u);
v=gaseste(v);
if(u==v) return;

t[v]=u;



}


int main()
{

    fin>>n>>m;


    for(i=1;i<=n;i++)
    {
      t[i]=i;
    }

    for(i=1;i<=m;i++)
    {
        fin>>tip>>x>>y;

        if(tip==2)
        {
            if(gaseste(x)==gaseste(y))
            {
                fout<<"DA"<<'\n';
            }
            else fout<<"NU"<<'\n';
        }

        if(tip==1)
        {
            unire(x,y);
        }

    }




    return 0;
}