Pagini recente » Cod sursa (job #2128078) | Cod sursa (job #72405) | Cod sursa (job #555650) | Cod sursa (job #2886419) | Cod sursa (job #641207)
Cod sursa(job #641207)
#include<stdio.h>
FILE*f=fopen("dfs.in","r");
FILE*g=fopen("dfs.out","w");
int n,m,x,y,sol;
char a[100001];
struct point{
int inf;
point *adr;
} *p,*q,*L[100001];
void dfs(int nod){
a[nod]=1;
for(point *q=L[nod];q!=NULL;q=q->adr){
if(!a[q->inf])
dfs(q->inf);
}
}
int main(){
fscanf(f,"%d%d",&n,&m);
for(int i=1;i<=n;++i)
L[i]= NULL;
for(int i=1;i<=m;++i){
fscanf(f,"%d%d",&x,&y);
q=new point;
q->inf=y;
q->adr=L[x];
L[x]=q;
q=new point;
q->inf=x;
q->adr=L[y];
L[y]=q;
}
for(int i=1;i<=n;++i){
if(!a[i]){
dfs(i);
++sol;
}
}
fprintf(g,"%d",sol);
fclose(g);
fclose(f);
return 0;
}