Pagini recente » Cod sursa (job #2616707) | Cod sursa (job #3138478) | Cod sursa (job #2820211) | Cod sursa (job #789809) | Cod sursa (job #624408)
Cod sursa(job #624408)
#include <stdio.h>
struct nod{
int x;
struct nod*next; } *v[100001];
bool viz[100001];
int n,m,r;
void add(int x,int y){
nod*s;
s=new nod;
s->x=y;
s->next=v[x];
v[x]=s;
}
void dfs(int x){
nod*s=v[x];
viz[x]=1;
while(s!=NULL){if(!viz[s->x])dfs(s->x);s=s->next;}
}
int main(){
int i,x,y;
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++){
scanf("%d%d",&x,&y);
add(x,y);
add(y,x); }
for(i=1;i<=n;i++)
if(!viz[i]){r++;dfs(i);}
printf("%d\n",r);
}