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