Cod sursa(job #1206922)

Utilizator PopescuMihai95Popescu Mihai PopescuMihai95 Data 11 iulie 2014 15:12:18
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
int viz[100005];
int n,i,j,m,nr;
vector < int > v[100005];
void citire()
{
    int x,y;
    scanf("%d %d",&n,&m);
    for (i=1;i<=m;i++)
    {
        scanf("%d %d",&x,&y);
        v[x].push_back(y);
        v[y].push_back(x);
    }
}
void dfs(int x)
{
    int j;
    for (j=0;j<v[x].size();j++) if (!viz[v[x][j]])
    viz[v[x][j]]=1,dfs(v[x][j]);
}
int main()
{
    freopen("dfs.in","r",stdin);
    freopen("dfs.out","w",stdout);
    citire(); nr=0;
    for (i=1;i<=n;i++) if (!viz[i])
    {
        nr++; viz[i]=1;
        dfs(i);
    }
    printf("%d",nr);
    return 0;
}