Cod sursa(job #2532715)

Utilizator MichaelXcXCiuciulete Mihai MichaelXcX Data 28 ianuarie 2020 09:58:17
Problema Parcurgere DFS - componente conexe Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>

#define in  "dfs.in"
#define out "dfs.out"

using namespace std;

const int NMAX = 100005;

int N, M, x, y, cnt;
bitset< NMAX > checked;
vector< int > G[NMAX];

void dfs(int node)
{
    checked[node] = 1;

    for(size_t i = 0; i < G[node].size(); ++i) {
        int next = G[node][i];
        if(!checked[next])
            dfs(next);
    }
}

int main()
{
    freopen("dfs.in", "r", stdin);
    freopen("dfs.out", "w", stdout);

    cin >> N >> M;

    for(int i = 0; i < N; ++i) {
        cin >> x >> y;

        G[x].push_back(y);
        G[y].push_back(x);
    }

    for(int i = 1; i <= N; ++i)
        if(!checked[i]) {
            cnt++;
            dfs(i);
        }

    cout << cnt << "\n";
}