fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define endl '\n'
  4. #define int long long
  5. const int MOD = pow(10,9)+7;
  6. const int MOD2 = 998244353;
  7. const int INF = LLONG_MAX/2;
  8. int primes[1000000];
  9. void seive(){
  10. fill(primes, primes + 1000000, 1);
  11. primes[0] = primes[1] = 0;
  12. for(int i = 2 ; i*i < 1000000 ; i++){
  13. if(primes[i]){
  14. for(int j = i*i ; j < 1000000 ; j += i){
  15. primes[j] = 0;
  16. }
  17. }
  18. }
  19. for(int i = 1 ; i < 1000000 ; i++){
  20. primes[i] += primes[i-1];
  21. }
  22. }
  23. int factorial(int n){
  24. if(n==0){
  25. return 1;
  26. }
  27. return (n*(factorial(n-1)))%MOD;
  28. }
  29. bool isPrime(int n){
  30. if(n <= 1) return false;
  31. for(int i = 2 ; i*i <= n ; i++){
  32. if(n % i == 0) return false;
  33. }
  34. return true;
  35. }
  36.  
  37. int power(int a, int b){
  38. if(b == 0) return 1;
  39. a %= MOD;
  40. int value = power(a, b / 2);
  41. if(b % 2 == 0){
  42. return (value * value) % MOD;
  43. } else {
  44. return ((value * value) % MOD * (a % MOD)) % MOD;
  45. }
  46. }
  47.  
  48. int gcd(int a, int b){
  49. if(a == 0) return b;
  50. return gcd(b % a, a);
  51. }
  52. void solve() {
  53. int n1,m1;
  54. cin>>n1>>m1;
  55. vector<int>A[n1+1];
  56. for(int i = 0 ; i<m1 ; i++){
  57. int a,b;
  58. cin>>a>>b;
  59. A[a].push_back(b);
  60. A[b].push_back(a);
  61. }
  62. int d;
  63. cin>>d;
  64. queue<int>q;
  65. int visited[n1+1] = {0};
  66. int level[n1+1] = {0};
  67. visited[d] = 1;
  68. q.push(d);
  69. while(!q.empty()){
  70. int node = q.front();
  71. q.pop();
  72. for(auto node1 : A[node]){
  73. if(!visited[node1]){
  74. q.push(node1);
  75. visited[node1] = 1;
  76. level[node1] = level[node]+1;
  77. }
  78. }
  79. }
  80. for(int i = 1 ; i<n1+1 ; i++){
  81. cout<<level[i]<<" ";
  82. }
  83. cout<<endl;
  84. }
  85.  
  86. signed main(){
  87. ios::sync_with_stdio(false); cin.tie(NULL);
  88. //int t;
  89. //cin >> t;
  90. //while(t--){
  91. solve();
  92. //}
  93. return 0;
  94. }
Success #stdin #stdout 0.01s 5316KB
stdin
5 4
1 2
2 3
2 4
3 5
2
stdout
1 0 1 1 2