Pagini recente » Cod sursa (job #937952) | Cod sursa (job #10774) | Cod sursa (job #2543294) | Cod sursa (job #2667999) | Cod sursa (job #237482)
Cod sursa(job #237482)
#include<stdio.h>
#include<stdlib.h>
int *a[100001],nr,n,m,i,x,y,s,fol[100001];
void citire();
void df(int w){
int j;
fol[w]=1;
for (j=1;j<=a[w][0];j++)
if (!fol[a[w][j]])
df(a[w][j]);
}
void afisare();
int main(){
citire();
for (int i=1;i<=n;i++)
if (!fol[i])
df(i),nr++;
afisare();
return 0;
}
void citire(){
int i;
freopen("dfs.in","r",stdin);
scanf("%d %d ",&n,&m);
for (i=1;i<=n;i++){
a[i]=(int*)malloc(sizeof(int));
a[i][0]=0;
}
for (i=1;i<=m;i++){
scanf("%d %d", &x,&y);
a[x][0]++;
a[x]=(int*) realloc(a[x],(a[x][0]+1)*sizeof(int));
a[x][a[x][0]]=y;
a[y][0]++;
a[y]=(int*) realloc(a[y],(a[y][0]+1)*sizeof(int));
a[y][a[y][0]]=x;
}
}
void afisare(){
freopen("dfs.out","w",stdout);
printf("%d\n",nr);
}