Cod sursa(job #1091958)

Utilizator PlatonPlaton Vlad Platon Data 26 ianuarie 2014 13:11:00
Problema Parcurgere DFS - componente conexe Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>
#include <vector>

#define maxn 100000

using std::vector;

int n,m, viz[maxn];
vector<int> g[maxn];

int dfs(int x)
{
    viz[x]=1;

    for (int i=0; i<g[x].size(); i++)
    {
        if(!viz[g[x][i]])
        {
            dfs(g[x][i]);
        }
    }
}

int c;

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

    scanf("%d%d", &n, &m);

    for (int i=0; i<m; i++)
    {
        int a, b;
        scanf("%d%d", &a, &b);
        g[a].push_back(b);
        g[b].push_back(a);
    }

    for (int i=1; i<=n; i++)
    {
        if(!viz[i])
        {
            dfs(i);
            c++;
        }
    }
    printf("%d", c);

    return 0;
}