Pagini recente » Cod sursa (job #244983) | Cod sursa (job #3343697) | Borderou de evaluare (job #3303924) | Cod sursa (job #3335374) | Cod sursa (job #655941)
Cod sursa(job #655941)
#include<stdio.h>
struct nod
{
int inf;
nod *adr;
};
int n,m;
nod *a[100001];
int v[100001];
void adaug(int x,int y)
{
nod *b=new nod;
b->adr=a[x];
b->inf=y;
a[x]=b;
}
void citire()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d %d",&n,&m);
int x,y;
for (int i=1;i<=m;i++)
{
scanf("%d %d",&x,&y);
adaug(x,y);
adaug(y,x);
}
}
void dfs(int x)
{
v[x]=1;
nod * b=new nod;
b=a[x];
while (b)
{
if (!v[b->inf]) dfs(b->inf);
b=b->adr;
}
}
int main()
{
citire();
int nr=0;
for (int i=1;i<=n;i++) if (!v[i])
{
dfs(i);
nr++;
}
printf("%d\n",nr);
return 0;
}