Cod sursa(job #2532716)

Utilizator MichaelXcXCiuciulete Mihai MichaelXcX Data 28 ianuarie 2020 10:02:56
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 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;
char checked[NMAX];
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()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    freopen("dfs.in", "r", stdin);
    freopen("dfs.out", "w", stdout);

    cin >> N >> M;

    for(int i = 0; i < M; ++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";
}