Cod sursa(job #1884816)

Utilizator silviuilasSilviu Ilas silviuilas Data 19 februarie 2017 12:04:49
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
const int N = 100010;
vector<int> v[N];
bitset<N> viz;
int n,m,i,j,sol;
void dfs(int);
int main()
{
    f>>n>>m;

    for(;m;m--)
    {
        f>>i>>j;
        v[i].push_back(j);
        v[j].push_back(i);
    }
    for(i=1;i<=n;i++)
        if(!viz[i])
        {
            sol++;
            dfs(i);
        }
    g<<sol;
    return 0;
}
void dfs(int nod)
{
    viz[nod]=1;
    for(auto vec: v[nod])
        if(!viz[vec])
            dfs(vec);
}