Pagini recente » Monitorul de evaluare | Cod sursa (job #2856779) | Cod sursa (job #2435879) | Cod sursa (job #2476066) | Cod sursa (job #209929)
Cod sursa(job #209929)
#include<stdio.h>
#define max 1000
char a[max][max], c[max];
int n, m, i, j, x, y;
FILE *f, *g;
void read()
{ f=fopen("dfs.in", "r");
fscanf(f, "%d%d", &n, &m);
for(i=1; i<=m; i++)
{ fscanf(f, "%d%d", &x, &y);
a[x][y]=1; a[y][x]=1;
}
fclose(f);
}
int main()
{ int d[15000], k, p, u, ok=0;
read();
p=1; u=1; d[u]=1; c[1]=1; k=0;
while(ok==0)
{ while(p<=u)
{ for(i=1; i<=n; i++)
{ if(a[i][d[p]]==1 && c[i]==0)
{ u++; d[u]=i; c[i]=1;
}
}
p++;
}
ok=1; k++;
for(i=1; i<=n; i++)
if(c[i]==0)
{ u++; d[u]=i; ok=0; c[i]=1;
break;
}
}
g=fopen("dfs.out", "w");
fprintf(g, "%d", k);
fclose(g);
return 0;
}