Pagini recente » Cod sursa (job #766620) | Cod sursa (job #318145) | Cod sursa (job #2113497) | Cod sursa (job #755613) | Cod sursa (job #585560)
Cod sursa(job #585560)
#include <stdio.h>
int n,m;
struct nod{int val; nod *next;};
nod *G[100001];
int i,x,y,nrc,luat[100001];
int add(int a, int b)
{
nod *nou=new nod;
nou->val=b;
nou->next=G[a];
G[a]=nou;
return 0;
}
int dfs(int x)
{
nod *nou=new nod;
nou=G[x];
while (nou)
{
if (luat[nou->val]) {nou=nou->next; continue;}
luat[nou->val]=1;
dfs(nou->val);
nou=nou->next;
}
return 0;
}
int main(void)
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d%d%d",&n,&m);
for (i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
for (i=1;i<=n;i++)
{
if (!luat[i])
{luat[i]=1; dfs(i); nrc++;}
}
printf("%d\n",nrc);
return 0;
}