Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std ;
  3. int visited[100005] ;
  4. int cost[100005] ;
  5. vector<int>v[100005] ;
  6. int cnt ;
  7. int te=1 ;
  8. void bfs(int a,int b)
  9. {
  10. // cout<<a<<" "<<b<<endl ;
  11. //for(int k=1;k<=10000;k++)visited[k]=0 ;
  12. cnt=0 ;
  13. queue <int > q ;
  14. q.push(a) ;
  15. visited[a]=1 ;
  16. while(!q.empty())
  17. {
  18. int top = q.front() ;
  19. q.pop() ;
  20. for(int i=0; i<v[top].size() ; i++)
  21. {
  22. int aa = v[top][i] ;
  23. if(visited[aa]==0)
  24. {
  25. visited[aa]=1 ;
  26. cost[aa] = cost[top] + 1 ;
  27. //cout<<"Cost " <<cost[aa]<<"Got "<<aa<<endl ;
  28. if(cost[aa]<=b)
  29. {
  30. cnt++ ;
  31. }
  32. q.push(aa) ;
  33. }
  34. }
  35. }
  36. }
  37. int main()
  38. {
  39. int n ;
  40. while(cin >> n )
  41. {
  42. set<int> s ;
  43. //vector<int>v[1009] ;
  44. if(n==0)break ;
  45. for(int ii=0;ii<=100005 ;ii++)
  46. v[ii].clear() ;
  47.  
  48. for(int i=1; i<=n; i++)
  49. {
  50. int a,b ;
  51. cin >> a >> b ;
  52. v[a].push_back(b) ;
  53. v[b].push_back(a) ;
  54. s.insert(a) ;
  55. s.insert(b) ;
  56. }
  57. int dd = s.size() ;
  58. int p, q ;
  59. // int te = 1 ;
  60. while(cin >> p >> q)
  61. {
  62. if(p==0 && q==0)break ;
  63. // cnt=0 ;
  64. bfs(p,q) ;
  65. printf("Case %d: %d nodes not reachable from node %d with TTL = %d.\n",te,dd-(cnt+1),p,q) ;
  66. te++ ;
  67. // cout<<cnt<<endl ;
  68. for(int k=1;k<=100000;k++)visited[k]=0 ;
  69. for(int k=1;k<=100000;k++)cost[k]=0 ;
  70. }
  71.  
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement