Cod sursa(job #1682315)

Utilizator mihnea00Duican Mihnea mihnea00 Data 10 aprilie 2016 10:06:12
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>

using namespace std;

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

int n,m,i,j,x,z,v[10000],cond,a,b,t1,t2,k;

int cauta(int x)
{
    while(v[x]>0)
        x=v[x];
    return x;
}
int main()
{
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        v[i]=-1;
    }
    for(k=1;k<=m;k++)
    {
        fin>>cond>>a>>b;
        t1=cauta(a);
        t2=cauta(b);
        if(cond==1)
        {
            if(v[t1]>v[t2])
            {
                v[t2]=v[t1]+v[t2];
                v[t1]=t2;
            }
            else
            {
                v[t1]=v[t1]+v[t2];
                v[t2]=t1;
            }
        }
        else
        {
            if(t1==t2)
                fout<<"DA"<<"\n";
            else
                fout<<"NU"<<"\n";
        }
    }
    return 0;
}