Pagini recente » Cod sursa (job #1800055) | Cod sursa (job #1137855) | Cod sursa (job #2584151) | Cod sursa (job #1128105) | Cod sursa (job #598792)
Cod sursa(job #598792)
#include <stdio.h>
using namespace std;
long N,M,i,j,x,y,adiac[1001][1001],viz[1001],stiva[1001],total;
void parcurgere_dfs (long start)
{
long p=1,u=1;
int ok;
stiva[1]=start;
while (u)
{
viz[stiva[p]]=1;
ok=0;
for (i=1; i<=N && !ok; i++) if (!viz[i] && adiac[stiva[p]][i]) {stiva[++u]=i; ok++;}
if (!ok) u--;
p=u;
}
total++;
}
int main ()
{
freopen("dfs.in", "r",stdin);
scanf("%d %d", &N, &M);
for (i=1; i<=M; i++)
{
scanf("%d %d", &x,&y);
adiac[x][y]=adiac[y][x]=1;
}
freopen("dfs.out", "w",stdout);
for (j=1; j<=N; j++) if (!viz[j]) parcurgere_dfs(j);
printf("%d", total);
return 0;
}