Pagini recente » Cod sursa (job #2037099) | Cod sursa (job #1369569) | Cod sursa (job #2890741) | Cod sursa (job #432752) | Cod sursa (job #633332)
Cod sursa(job #633332)
#include <cstdio>
#include <stack>
using namespace std;
int n,m,x,y,a[100001][25],p,nc,vb,v[100001],i,k,j;
stack <int> S;
int main()
{
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);
a[x][0]++;
a[x][a[x][0]]=y;
a[y][0]++;
a[y][a[y][0]]=x;
}
for (i=1;i<=n;i++)
if (!v[i])
{
nc++;
while (!S.empty())
S.pop();
S.push(i);
while (!S.empty())
{
k=S.pop();
for (j=1; j<=a[k][0]; ++j)
if (!v[a[k][j])
S.push(a[k][j]);
}
}
printf("%d", nc);
return 0;
}