Cod sursa(job #1038573)

Utilizator vladcfVlad Frasineanu vladcf Data 21 noiembrie 2013 19:14:12
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>

using namespace std;
int n,m,i,a,b,c,v[100000],x,ok;

int main()
{
    ifstream f("disjoint.in");
    ofstream g("disjoint.out");
    f>>n>>m;
    for (i=1;i<=n;i++) v[i]=i;
    for (i=0;i<m;i++)
        {
            f>>a>>b>>c;
            if (a==1)
                {
                    x=v[b];
                    v[b]=v[c];
                    v[c]=x;
                }
            if (a==2)
                {
                    ok=0;
                    x=b;
                    while (v[b]!=x)
                        {
                            b=v[b];
                            if (b==c) ok=1;
                        }
                    if (ok==1)
                        {
                            g<<"DA";
                            g<<"\n";
                        }
                        else
                        {
                            g<<"NU";
                            g<<"\n";
                        }
                }
        }
    f.close();
    g.close();
    return 0;
}