Pagini recente » Cod sursa (job #2045696) | Cod sursa (job #1554420) | Cod sursa (job #322021) | Cod sursa (job #2149502) | Cod sursa (job #410007)
Cod sursa(job #410007)
# include <stdio.h>
long n,m;
long viz[100005],q[100005];
struct nod
{ nod * urm;
long info;};
nod * v[100005];
void read()
{ nod *p;
long i,a,b;
for (i=1;i<=m;i++)
{scanf ("%ld%ld",&a,&b);
p=new nod;
p->info=b;
p->urm=v[a];
v[a]=p;
p=new nod;
p->info=a;
p->urm=v[b];
v[b]=p;
}
}
void dfs(long i)
{ if (v[i]==NULL)
return;
nod *p;
p=v[i];
viz[i]=1;
while (p)
{ if (viz[p->info]==0)
{viz[p->info]=1;
dfs(p->info);
}
p=p->urm;
}
}
void rezolvare()
{long i,nr=0;
for (i=1;i<=n;i++)
if (viz[i]==0)
{nr++;
dfs(i);
}
printf ("%ld",nr);
}
int main()
{ freopen ("dfs.in","r",stdin);
freopen ("dfs.out","w",stdout);
scanf ("%ld%ld%", &n,&m);
read();
rezolvare();
return 0;
}