Cod sursa(job #1879303)

Utilizator DM1234Radu Radu DM1234 Data 14 februarie 2017 20:42:44
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
ifstream fin("graf.in");

vector<int> G[100005];
int n, m, v[100005], ncc;

void citire()
{
  int i, x, y;
  fin >> n >> m;
  for(i = 1; i <= m; i++)
  {
    fin >> x >> y;
    G[x].push_back(y);
    G[y].push_back(x);
  }
}

void DFS(int nod)
{
  int i;
  v[nod] = 1;
  for(i = 0; i < G[nod].size(); i++)
  {
    int vecin = G[nod][i]; // veciunul nod-ului;
    if(!v[vecin])
      DFS(vecin);
  }
}

void comp_conexe()
{
  int i;
  for(i = 1; i <= n; i++)
    if(v[i] == 0)
    {
      ncc++;
      DFS(i);
    }
}

int main()
{
  citire();
  comp_conexe();
  cout << "Nr de componente conexe: " << ncc << endl;
}