Pagini recente » Cod sursa (job #2573764) | Cod sursa (job #2364558) | Cod sursa (job #522036) | Cod sursa (job #439845) | Cod sursa (job #1447897)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 100001
int con=1,ind[MAXN],next[4*MAXN],viz[MAXN],vf[4*MAXN];
void DFS(int nod){
int p;
viz[nod]=con;
p=ind[nod];
while(p>0){
if(viz[vf[p]]==0)
DFS(vf[p]);
p=next[p];
}
}
int main(){
FILE*fi,*fout;
int i,n,m,p,x,y;
fi=fopen("dfs.in" ,"r");
fout=fopen("dfs.out" ,"w");
fscanf(fi,"%d%d" ,&n,&m);
p=1;
for(i=1;i<=m;i++){
fscanf(fi,"%d%d" ,&x,&y);
if(x!=y){
vf[p]=y;
next[p]=ind[x];
ind[x]=p;
p++;
vf[p]=x;
next[p]=ind[y];
ind[y]=p;
p++;
}
}
for(i=1;i<=n;i++)
if(viz[i]==0){
DFS(i);
con++;
}
fprintf(fout,"%d" ,con-1);
fclose(fi);
fclose(fout);
return 0;
}