Cod sursa(job #662224)

Utilizator Laura_MMiclescu Laura Laura_M Data 16 ianuarie 2012 09:38:15
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>

using namespace std;

int t[100001], i, X, Y;

int root(int k)
{
    if (t[k]==0)
        return k;
    int r=root(t[k]);
    t[k]=r;
    return r;                  
}
     
int main()
{
    int N, M, cod;
    ifstream f("disjoint.in");
    ofstream g("disjoint.out");
    f>>N>>M;
    for (i=0; i<N; i++)
         t[i]=i;
    for (i=0; i<M; i++)
        {f>>cod>>X>>Y;
         if (cod==1)
             {t[root(X)]=root(Y);}
         else
             if (root(X)==root(Y))
                 g<<"DA\n";
             else
                 g<<"NU\n";}
    f.close();
    g.close();             
    return 0;
}