Pagini recente » oji_11_2023 | Cod sursa (job #487054) | Cod sursa (job #2263890) | Cod sursa (job #729439) | Cod sursa (job #203348)
Cod sursa(job #203348)
#include<stdio.h>
#include<stdlib.h>
int n,m;
int *a[100001],cati[100001],rez;
bool ok[100001];
void citire()
{
int x,y;
scanf("%d%d",&n,&m);
for(int i=0; i<m; i++)
{
scanf("%d%d",&x,&y);
if(!(cati[x]&7))
a[x]=(int*)realloc(a[x],(cati[x]+10)*sizeof(int));
cati[x]++;
a[x][cati[x]]=y;
if(!(cati[y]&7))
a[y]=(int*)realloc(a[y],(cati[y]+10)*sizeof(int));
cati[y]++;
a[y][cati[y]]=x;
}
}
void dfs(int nod)
{
ok[nod]=true;
for(int i=1; i<=cati[nod]; i++)
{
if(!ok[a[nod][i]])
dfs(a[nod][i]);
}
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
citire();
for(int i=1; i<=n; i++)
{
if(!ok[i])
{
rez++;
dfs(i);
}
}
printf("%d\n",rez);
return 0;
}