Pagini recente » Cod sursa (job #61861) | Cod sursa (job #2695681) | Cod sursa (job #571102) | Cod sursa (job #2923240) | Cod sursa (job #423463)
Cod sursa(job #423463)
#include <stdio.h>
#include <stdlib.h>
int n, m, viz[100005], cnt;
typedef struct nod
{
int info;
nod *urm;
} *tnod;
tnod v[100005];
void push(tnod &dest, int val)
{
tnod p;
p = new nod;
p -> info = val;
p -> urm = dest;
dest = p;
}
void citire()
{int i, x, y;
scanf("%d %d",&n,&m);
for (i = 1; i <= m; i++)
{
scanf("%d %d",&x,&y);
push(v[x], y);
push(v[y], x);
}
}
void DFS(int nod)
{tnod p;
viz[nod] = 1;
for (p = v[nod]; p != NULL; p = p -> urm) if (!viz[p -> info]) DFS(p -> info);
}
int main()
{int ct;
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
citire();
int i;
ct = 0;
for (i=1;i<=n;i++)
if (!viz[i])
{
++ct;
DFS(i);}
printf("%d",ct);
return 0;
}