Pagini recente » cntnk | Cod sursa (job #33940) | Cod sursa (job #1083463) | Cod sursa (job #2971352) | Cod sursa (job #457069)
Cod sursa(job #457069)
#include <cstdio>
int m,n,mar[100005];
typedef struct nod {
int x;
nod *urm;
} *pnod;
pnod v[100005];
void adaugare(pnod &a, int b) {
pnod p;
p=new nod;
p->x=b;
p->urm=a;
a=p;
}
void dfs(int d) {
pnod p;
mar[d]=1;
for(p= v[d] ;p!=NULL;p=p->urm) {
if(!mar[p->urm])
dfs(p->urm);
}
}
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;
}