Pagini recente » Cod sursa (job #2291650) | Cod sursa (job #2871440) | Cod sursa (job #904367) | Cod sursa (job #111035) | Cod sursa (job #335319)
Cod sursa(job #335319)
#include<stdio.h>
long n,m,cont,viz[100010],i;
struct nod
{
int nd;
nod *next;
}; nod *L[100010];
void dfs(long a)
{
if (L[a]==NULL)
{
return;
}
nod *p;
for (p=L[a];p!=NULL;p=p->next)
{
if (!viz[p->nd])
{
viz[p->nd]=1;
dfs(p->nd);
}
}
}
int main()
{
nod *p,*q;
long x,y;
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%ld%ld",&n,&m);
for(i=1;i<=m;++i)
{
scanf("%ld%ld",&x,&y);
if(x!=y)
{
p=new nod;
p->nd=y;
p->next=L[x];
L[x]=p;
q=new nod;
q->nd=i;
q->next=L[y];
L[y]=q;
}
}
for(i=1;i<=n;++i)
{
if(!viz[i]) cont++,dfs(i);
}
printf("%ld\n",cont);
return 0;
}