Cod sursa(job #2756801)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 2 iunie 2021 22:35:31
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
#include <vector>

using namespace std;

int N, M;
vector<vector<int>> Graph;
vector<bool> used;

void DFS(int k) {
  used[k] = true;
  for (auto it: Graph[k])
    if (!used[it])
      DFS(it);
}

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

  scanf("%d%d", &N, &M);
  Graph.resize(N);
  used.resize(N);

  for (int i = 0; i < M; ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    --x; --y;
    Graph[x].emplace_back(y);
    Graph[y].emplace_back(x);
  }

  int ans = 0;
  for (int i = 0; i < N; ++i)
    if (!used[i]) {
      ++ans;
      DFS(i);
    }

  printf("%d\n", ans);
  
  return 0;
}