Cod sursa(job #186022)

Utilizator firewizardLucian Dobre firewizard Data 26 aprilie 2008 16:12:21
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#ifdef WIN32   
#define _CRT_SECURE_NO_WARNINGS   
#endif   
  
#include <stdio.h>   
  
#include <vector>   
using namespace std;   
  
vector<int> v[100352];   
int k[100352];   
  
  
void dfs(int p, int c)   
{   
    if (k[p] != 0)   
        return;   
  
    k[p] = c;   
    for (int i = 0; i < (int)v[p].size(); i++)   
        dfs(v[p][i], c);   
}   
  
  
int main()   
{   
    freopen("dfs.in", "rt", stdin);   
    freopen("dfs.out", "wt", stdout);   
  
    int n, m;   
    scanf("%d%d", &n, &m);   
    for (int i = 0; i < m; i++)   
    {   
        int x, y;   
        scanf("%d%d", &x, &y);   
        v[x].push_back(y);   
        v[y].push_back(x);   
    }   
  
    int c = 1;   
    for (int i = 1; i <= n; i++)   
        if (k[i] == 0)   
            dfs(i, c++);   
  
    printf("%d\n", c - 1);   
  
    return 0;   
}