Pagini recente » Cod sursa (job #95468) | Cod sursa (job #881609) | Cod sursa (job #1947410) | Cod sursa (job #2138352) | Cod sursa (job #217174)
Cod sursa(job #217174)
#include<stdio.h>
#define NMAX 100001
struct nod{int n;
nod *urm;};
nod *nc,*p[NMAX];
int i,n,m,x,y;
int v[NMAX];
void dfs(int x)
{
nod *nc;
v[x]=1;
nc=p[x];
while(nc)
{
if(!v[nc->n])
dfs(nc->n);
nc=nc->urm;
}
}
int main(void)
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
p[i]=0;
for(i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
nc=new nod;
nc->n=y;
nc->urm=p[x];
p[x]=nc;
nc=new nod;
nc->n=x;
nc->urm=p[y];
p[y]=nc;
}
int nrcomp=0;
for(i=1;i<=n;i++)
if(!v[i])
{
nrcomp++;
dfs(i);
}
printf("%d\n",nrcomp);
/*for(i=1;i<=n;i++)
{
nc=p[i];
while(nc)
{
printf("%d ",nc->n);
nc=nc->urm;
}
printf("\n");
}*/
return 0;
}