Pagini recente » Cod sursa (job #3153214) | Cod sursa (job #2219059) | Cod sursa (job #2033601) | Cod sursa (job #3215726) | Cod sursa (job #1193849)
#include<stdio.h>
#include<stdlib.h>
struct nod{
int val;
nod *next;
};
nod **A;
int *viz,**C,N,M;
void citire() {
nod *nou;
int i,x,y;
scanf("%d %d",&N,&M);
A=(nod**)malloc((N+1)*sizeof(nod*));
for(i=1;i<=N;i++)
A[i]=NULL;
for(i=1;i<=M;i++) {
scanf("%d %d",&x,&y);
nou=(nod*)malloc(sizeof(nod));
nou->val=y;
nou->next=A[x];
A[x]=nou;
nou=(nod*)malloc(sizeof(nod));
nou->val=x;
nou->next=A[y];
A[y]=nou;
}
viz=(int*)calloc((N+1),sizeof(int));
}
void dfs(int x) {
nod *q;
viz[x]=1;
for(q=A[x];q!=NULL;q=q->next)
if(!viz[q->val]) dfs(q->val);
}
int main() {
int i,k=0;
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
citire();
for(i=1;i<=N;i++)
if(!viz[i]) {
k++;
dfs(i);
}
printf("%d ",k);
fclose(stdin);
fclose(stdout);
return 0;
}