Pagini recente » Cod sursa (job #104506) | Cod sursa (job #607462) | Cod sursa (job #297822) | Cod sursa (job #2934365) | Cod sursa (job #302710)
Cod sursa(job #302710)
#include<stdio.h>
struct tnod{int x;
tnod*urm;};
tnod *v[200000];
int n,m,s[200000],c;
void add(tnod*&,int);
void df(int);
int main(){
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++){int x,y;
scanf("%d %d",&x,&y);
add(v[x],y);
add(v[y],x);}
for(int i=1;i<=n;i++)if(s[i]==0){c++;
df(i);}
printf("%d\n",c);
return 0;}
void add(tnod*&d,int t){tnod *p;
p=new tnod;
p->x=t;
p->urm=d;
d=p;}
void df(int t){tnod *p;
s[t]=1;
for(p=v[t];p!=NULL;p=p->urm)if(s[p->x]==0)df(p->x);}