Pagini recente » Cod sursa (job #616964) | Cod sursa (job #304718) | Profil MihneaGhira | Cod sursa (job #2437066) | Cod sursa (job #164843)
Cod sursa(job #164843)
#include<stdio.h>
#define input "dfs.in"
#define output "dfs.out"
#define dim 5000
void DF(int vf);
int n, m, a[dim][dim], s[dim];
int main()
{
FILE *in, *out;
in = fopen (input, "r");
out = fopen (output, "w");
fscanf(in, "%d%d", &n, &m);
int i, j, x, y;
for(i=1; i<=m; i++)
{
fscanf(in, "%d%d", &x, &y);
a[x][y] = a[y][x] = 1;
}
int ok=0, cont=0;
for(i=1; i<=n; i++)
{
if(s[i]!=-1)
{
DF(i);
for(j=1; j<=n; j++)
if(s[j]==-1)
{
ok = 1;
}
}
if(ok==1)
cont++;
ok = 0;
}
fprintf(out, "%d", cont);
return 0;
}
void DF(int vf)
{
int k;
s[vf] = -1;
for(k=1; k<=n; k++)
if((a[vf][k] == 1) && (s[k] == 0))
DF(k);
}