fork download
  1. #include<bits/stdc++.h> // below comment for pbds
  2. #include<ext/pb_ds/assoc_container.hpp> // to use it make ordered_set
  3. #include<ext/pb_ds/tree_policy.hpp> // all set fnct + = 1. order_of_key(x); // number of
  4. #define ll long long //element strictly smaller than it;
  5. #define ld long double // 2. find_by_order(x),pointer el at x pos after sort use as s.f();
  6. #define ordered_set tree<ll, null_type,less<ll>, rb_tree_tag,tree_order_statistics_node_update>
  7. using namespace std; // assert(a[i]<n ) // if we want to check for special cond , used for debug
  8. using namespace __gnu_pbds; // make less_equal in order to make a multiset pbds
  9. #define INF (ll)1e18
  10. const ll Mod = (ll)1e9+7;
  11. ll CaseN=1;
  12. const ld PI = 22/7.0;
  13.  
  14. ll tst()
  15. {
  16. ll ans=0;
  17.  
  18. return ans;
  19. }
  20.  
  21. vector<vector<ll>> g(1002);
  22. vector<bool> vis(1002,false);
  23. ll n,m;
  24. vector<ll> d(1002,LLONG_MAX);
  25. queue<ll> q;
  26. ll s;
  27. //ll dis=0;
  28.  
  29. void bfs(ll src)
  30. {
  31.  
  32. while(!q.empty())
  33. {
  34. //dis++;
  35. ll p = q.front();
  36. //cout<<p<<"+";
  37. vis[p]=true;
  38. q.pop();
  39. for(auto x: g[p])
  40. {
  41. if(vis[x]==false)
  42. {
  43. q.push(x);
  44. d[x]= min(d[x],d[p]+1);
  45. //d[x]=min(d[x],dis);
  46. }
  47. }
  48.  
  49. }
  50.  
  51. return;
  52. }
  53.  
  54. void solve()
  55. {
  56. cin>>n>>m;
  57. //q.clear();
  58. for(ll i=1;i<=n;i++)
  59. {
  60. vis[i]=false;
  61. g[i].clear();
  62. d[i]=LLONG_MAX;
  63. }
  64.  
  65. for(ll i=0;i<m;i++)
  66. {
  67. ll u,v;
  68. cin>>u>>v;
  69. g[u].push_back(v);
  70. g[v].push_back(u);
  71. }
  72.  
  73. cin>>s;
  74. q.push(s);
  75. d[s]=0;
  76.  
  77. //cout<<"::"<<d[3]<<endl;
  78.  
  79. bfs(s);
  80.  
  81. //cout<<endl;
  82. for(ll i=1;i<=n;i++)
  83. {
  84. if(i==s)
  85. {
  86. continue;
  87. }
  88. if(d[i]==LLONG_MAX)
  89. cout<<"-1"<<" ";
  90. else
  91. cout<<d[i]*6<<" ";
  92. }
  93. cout<<endl;
  94.  
  95. //cout<<"Case #"<<CaseN<<": ";
  96. CaseN++;
  97. // print your ans below;
  98.  
  99. return ;
  100.  
  101. }
  102.  
  103.  
  104. signed main() {
  105. ios_base::sync_with_stdio(false);
  106. cin.tie(NULL);
  107. ll t=1;
  108. cin>>t;
  109. while(t--)
  110. {
  111. solve();
  112. }
  113.  
  114. }
Success #stdin #stdout 0s 4548KB
stdin
Standard input is empty
stdout