Pagini recente » Cod sursa (job #1892476) | Cod sursa (job #1782225) | Cod sursa (job #940439) | Cod sursa (job #2079916) | Cod sursa (job #148420)
Cod sursa(job #148420)
#include <stdio.h>
#include <stdlib.h>
#define Nmax 100100
int *l[Nmax], v[Nmax], n, m;
void DF(int nod)
{
v[nod] = 1;
for (int i=1;i<=l[nod][0];++i)
if (v[l[nod][i]] == 0) DF(l[nod][i]);
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d%d", &n,&m);
int i,x,y,cnt=0;
for (i=1;i<=n;++i)
{
l[i] = (int*)realloc(l[i],sizeof(int));
l[i][0] = 0;
}
for (i=1;i<=m;++i)
{
scanf("%d%d", &x,&y);
++l[x][0]; l[x] = (int*)realloc(l[x],(l[x][0]+1)*sizeof(int));
l[x][l[x][0]] = y;
++l[y][0]; l[y] = (int*)realloc(l[y],(l[y][0]+1)*sizeof(int));
l[y][l[y][0]] = x;
}
for (i=1;i<=n;++i)
if (v[i] == 0)
{
++cnt;
DF(i);
}
printf("%d\n", cnt);
return 0;
}