Advertisement
Guest User

Untitled

a guest
Oct 30th, 2014
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. using namespace std;
  2. #include<iostream>
  3. #include<cstdio>
  4. #include<cstring>
  5. #include<algorithm>
  6. #include<vector>
  7. #include<limits>
  8. #include<cmath>
  9. #include<queue>
  10. #include<map>
  11. vector<int>G[100];
  12. void bfs(int n)
  13. {
  14. queue<int>q;
  15. int level[100],visited[100]={0},parent[100];
  16. q.push(n);
  17. level[n]=0;
  18. visited[n]=1;
  19. while(!q.empty())
  20. {
  21. int a=q.front();
  22. for(int i=0;i<G[a].size();i++)
  23. {
  24. int b=G[a][i];
  25. if(!visited[b])
  26. {
  27. level[b]=level[a]+1;
  28. parent[b]=a;
  29. visited[b]=1;
  30. q.push(b);
  31. }
  32. }
  33. q.pop();
  34. }
  35. int nd;
  36. while(scanf("%d",&nd)==1)
  37. {
  38. printf("%d\n",level[nd]);
  39. vector<int>c;
  40. c.push_back(nd);
  41. for(int i=0;;i++)
  42. {
  43. int d=parent[nd];
  44. c.push_back(d);
  45. nd=d;
  46. if(nd==n)
  47. break;
  48. }
  49. for(int j=c.size()-1;j>=0;j--)
  50. {
  51. printf("%d\n",c[j]);
  52. }
  53. }
  54. }
  55. int main()
  56. {
  57. int E,N,n;
  58. scanf("%d%d%d",&n,&N,&E);
  59. for(int i=0;i<E;i++)
  60. {
  61. int x,y;
  62. scanf("%d%d",&x,&y);
  63. G[x].push_back(y);
  64. G[y].push_back(x);
  65. }
  66. bfs(n);
  67. return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement