Pagini recente » Cod sursa (job #1448960) | Diferente pentru preoni-2007/runda-2/solutii intre reviziile 21 si 22 | Cod sursa (job #1732275) | Cod sursa (job #226032) | Cod sursa (job #457066)
Cod sursa(job #457066)
#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) {
int po;
pnod p;
mar[d]=1;
for(p= v[d] ;p!=NULL;p=p->urm) {
po=(p->urm)->x;
if(!mar[po])
dfs(po);
}
}
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;
}