Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX 801
  4. #define INFINITY 10000
  5.  
  6. int places[MAX][MAX];
  7. int dist[MAX];
  8. int visited[MAX];
  9. int nodes[MAX];
  10. int max = 0;
  11. int max_followers = 0;
  12. int num;
  13. int index_f = -1;
  14. int size = 0;
  15.  
  16.  
  17. void bfs(int index){
  18. int i;
  19. visited[index] = 1;
  20. nodes[size++] = index;
  21.  
  22. while(size>0){
  23. int v = nodes[size];
  24. size--;
  25. for(i=1;i<places[v][0]+1;i++){
  26. if(visited[places[v][i]]==0){
  27. dist[places[v][i]] = dist[v]+1;
  28. visited[places[v][i]] = 1;
  29. nodes[size++] = places[v][i];
  30. }
  31. }
  32. }
  33. for(i=0;i<num;i++){
  34. printf("%d\n",dist[i]);
  35. }
  36. }
  37. void input(){
  38. int i,j,a;
  39. int aux;
  40. while(scanf("%d",&num)==1){
  41. max_followers = 0;
  42. index_f = -1;
  43. for(i=0;i<num;i++){
  44. visited[i] = 0;
  45. if(i==0)
  46. dist[i] = 0;
  47. else
  48. dist[i] = 1000;
  49. }
  50. for(i=0;i<num;i++){
  51. scanf("%d",&aux);
  52. if(i==0){
  53. max = aux;
  54. }
  55. if(aux>max){
  56. max_followers = aux;
  57. index_f = i;
  58. }
  59. places[i][0] = aux;
  60. for(j=1;j<aux + 1;j++){
  61. scanf("%d",&a);
  62. places[i][j]= a-1;
  63. }
  64. }
  65. bfs(0);
  66. }
  67. }
  68.  
  69. int main(){
  70. input();
  71. return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement