Pagini recente » Cod sursa (job #3233956) | Cod sursa (job #553699) | Cod sursa (job #256619) | Cod sursa (job #1828586) | Cod sursa (job #1447896)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 100001
int con=1,ind[MAXN],next[4*MAXN],y[4*MAXN],viz[MAXN];
void DFS(int nod){
int p;
viz[nod]=con;
p=ind[nod];
while(p>0){
if(viz[y[p]]==0)
DFS(y[p]);
p=next[p];
}
}
int main(){
FILE*fi,*fout;
int i,n,m,p,x;
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[p]);
if(x!=y[p]){
next[p]=ind[x];
ind[x]=p;
p++;
next[p]=ind[y[p]];
ind[y[p]]=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;
}