Cod sursa(job #1290621)

Utilizator cojocarugabiReality cojocarugabi Data 11 decembrie 2014 16:37:48
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
# include <bits/stdc++.h>
using namespace std;
const int nmax = 1e5 + 5;
int s[nmax];
int find(int x)
{
    return (x == s[x] ? x:s[x] = find(s[x]));
}
int main(void)
{
    int n,m,t,x,y;
    ifstream fi("disjoint.in");
    ofstream fo("disjoint.out");
    fi>>n>>m;
    for (int i=1;i<=n;++i) s[i]=i;
    while (m --)
    {
        fi>>t>>x>>y;
        if (t == 1) s[x]=find(s[y]);else fo << (s[x] == s[y] ? "DA\n":"NU\n");
    }
    return 0;
}