Pagini recente » Cod sursa (job #1770832) | Cod sursa (job #1587141) | Cod sursa (job #356552) | Cod sursa (job #2570087) | Cod sursa (job #288741)
Cod sursa(job #288741)
#include<stdio.h>
struct lista{
int inf;
lista *next;
};
lista *v[100010];
bool ut[100010];
void adauga(lista *&v,int y){
lista *c=new lista;
c->next=v;
c->inf=y;
v=c;
}
void dfs(int k) {
ut[k]=1;
while(v[k]) {
if(!ut[v[k]->inf])
dfs(v[k]->inf);
v[k]=v[k]->next;
}
}
int main(){
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
int n,m,i,nr=0,x,y;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++){
scanf("%d%d",&x,&y);
adauga(v[x],y);
adauga(v[y],x);
}
for(i=1;i<=n;i++)
if(!ut[i]){
nr++;
dfs(i);
}
printf("%d\n",nr);
return 0;
}