Pagini recente » Cod sursa (job #2502193) | Cod sursa (job #1140984) | Cod sursa (job #8090) | Cod sursa (job #1760863) | Cod sursa (job #1549549)
#include <iostream>
#include <cstdio>
using namespace std;
struct nod
{
int inf;
nod*a;
}*p[100001];
int a[100001],n,m;
void par(int k)
{
a[k]=1;
for(nod*c=p[k]; c!=NULL; c=c->a)
{
if(a[c->inf]==0)
par(c->inf);
}
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d %d",&n,&m);
int x,y;
for(int i=1; i<=m; i++)
{
scanf("%d %d",&x,&y);
nod*c=new nod;
c->inf=x;
c->a=p[y];
p[y]=c;
c=new nod;
c->inf=y;
c->a=p[x];
p[x]=c;
}
m=0;
/*for(int i=1;i<=n;i++)
{
cout<<i<<": ";
for(nod*c=p[i];c!=NULL;c=c->a)
cout<<c->inf<<" ";
cout<<endl;
}*/
for(int i=1; i<=n; i++)
if(a[i]==0)
{
m++;
par(i);
}
printf("%d",m);
return 0;
}