Pagini recente » Cod sursa (job #1344396) | Cod sursa (job #279050) | Cod sursa (job #2059532) | Cod sursa (job #940028) | Cod sursa (job #870198)
Cod sursa(job #870198)
#include<cstdio>
using namespace std;
int v1[200001],v2[200001],x[100001],*ad[100001];bool v[100000];
void rec(int i)
{
for(int j=0;j<x[i];++j)
if(!v[ad[i][j]])
v[ad[i][j]]=1,rec(ad[i][j]);
}
int main()
{
freopen("dfs.in","r",stdin);freopen("dfs.out","w",stdout);
int n,m,i,s=0;
scanf("%d%d",&n,&m);
for(i=1;i<=m;++i)
scanf("%d%d",&v1[i],&v2[i]),++x[v1[i]],++x[v2[i]];
for(i=1;i<=n;x[i++]=0)
ad[i]=new int[x[i]];
for(i=1;i<=m;++i)
ad[v1[i]][x[v1[i]]++]=v2[i],
ad[v2[i]][x[v2[i]]++]=v1[i];
for(i=1;i<=n;++i)
if(!v[i])
++s,v[i]=1,rec(i);
printf("%d",s);
}