Cod sursa(job #1261281)

Utilizator binicBinica Nicolae binic Data 12 noiembrie 2014 10:03:05
Problema Parcurgere DFS - componente conexe Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<cstdio>
using namespace std;
int n,m,i,x,z,y,viz[100003];
struct nod
{
    int val;
    nod *urm;
}*a[100003];
void add(nod *&x,int y)
{
    nod *p;
    p=new nod;
    p->val=y;
    p->urm=x;
    x=p;
}
void dfs(nod *n)
{
    nod *p;
    for(p=n;p!=0;p=p->urm)
        if(viz[p->val]==0){viz[p->val]=1;dfs(p);}
}
int main()
{
    freopen("dfs.in","r",stdin);
    freopen("dfs.out","w",stdout);
    scanf("%d %d",&n,&m);
    for(i=1;i<=m;i++)
    {
        scanf("%d %d",&x,&y);
        add(a[x],y);
        add(a[y],x);
    }
    for(i=1;i<=n;i++)
        if(viz[i]==0)z++,dfs(a[i]);
    printf("%d",z);
    return 0;
}