Pagini recente » Cod sursa (job #1558208) | Cod sursa (job #2938670) | Cod sursa (job #1701292) | Cod sursa (job #328100) | Cod sursa (job #233343)
Cod sursa(job #233343)
#include<cstdio>
#include<cstdlib>
using namespace std;
int nr,viz[100001],*g[100001],m,a,b,deg[100001],n;
void dfs(int d)
{viz[d]=1;
for(int *p=g[d];*p!=-1;p++)
if(viz[*p]==0) {viz[*p]=1;dfs(*p);}
}
int main()
{freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d %d",&n,&m);
for(;m;m--) {scanf("%d %d",&a,&b);a--;b--;deg[a]++;deg[b]++;}
for(int i=0;i<n;deg[i++]=0)
{g[i]=(int *)malloc(deg[i]*sizeof(int));
}
fseek(stdin,0,SEEK_SET);
scanf("%d %d",&n,&m);
for(;m;m--) {scanf("%d %d",&a,&b);a--;b--;g[a][deg[a]++]=b;g[b][deg[b]++]=a;}
for(int i=0;i<n;i++) g[i][deg[i]]=-1;
nr=0;
for(int i=0;i<n;i++) viz[i]=0;
for(int i=0;i<n;i++) if(viz[i]==0) {nr++;dfs(i);}
printf("%d",nr);
return 0;
}