Pagini recente » Cod sursa (job #2884820) | Cod sursa (job #3288036) | Cod sursa (job #1843532) | Cod sursa (job #3267737) | Cod sursa (job #457038)
Cod sursa(job #457038)
#include <cstdio>
int m,n,mar[200000];
typedef struct nod {
int x;
nod *urm;
} *pnod;
pnod v[200001];
void adaugare(nod *a, int b) {
nod *p;
p=new nod;
p->x=b;
p->urm=a;
a=p;
}
void dfs(int d) {
nod *p;
mar[d]=1;
for(p=v[d];
p!=NULL;
p=p->urm)
if(!mar[(p->urm)->x])
dfs((p->urm)->x);
}
int main()
{
int i,x,y,cont=0;
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);
adaugare(v[x],y);
adaugare(v[y],x);
}
for(i=1; i<=n; i++)
if(!mar[i]) {
cont++;
dfs(i);
}
printf("%d\n",cont);
return 0;
}