Cod sursa(job #1261282)

Utilizator binicBinica Nicolae binic Data 12 noiembrie 2014 10:10:21
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 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(int n)
{
    nod *p;
    viz[n]=1;
    for(p=a[n];p!=0;p=p->urm)if(viz[p->val]==0)dfs(p->val);
}
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(i);
    printf("%d",z);
    return 0;
}