Cod sursa(job #1511954)

Utilizator vazanIonescu Victor Razvan vazan Data 27 octombrie 2015 13:42:49
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<cstdio>
#include<vector>
using namespace std;

#define NMAX 100000

vector<int> G[NMAX+5], viz;
int cc=1;

void rez(int u)
{
    int i=0;
    for(i=0; i<G[u].size(); i++)
    {
        int v=G[u][i];
        if(!viz[v])
        {
            viz[v]=cc;
            rez(v);
        }
    }
}


int main()
{
    freopen("dfs.in","r",stdin);
    freopen("dfs.out","w",stdout);
    int u, v, n, k, i;
    scanf("%d%d",&n, &k);
    for(i=1; i<=k; i++)
    {
        scanf("%d%d", &u, &v);
        G[u].push_back(v);
        G[v].push_back(u);
    }
    viz.assign(n+1, 0);
    for(i=1; i<=n; i++)
    {
        if(!viz[i])
        {
            rez(i);
            cc++;
        }
    }
    printf("%d", cc-1);
    return 0;
}