fork download
  1. /// Author : Nguyễn Thái Sơn - K18 - KHMT - UIT
  2. /// Training ICPC 2024
  3.  
  4. #include<bits/stdc++.h>
  5.  
  6. /// #pragma GCC optimize("O3,unroll-loops")
  7. /// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
  8.  
  9. #define fi first
  10. #define se second
  11. #define TASK "test"
  12. #define pb push_back
  13. #define EL cout << endl
  14. #define Ti20_ntson int main()
  15. #define in(x) cout << x << endl
  16. #define all(x) (x).begin(),(x).end()
  17. #define getbit(x, i) (((x) >> (i)) & 1)
  18. #define cntbit(x) __builtin_popcount(x)
  19. #define FOR(i,l,r) for (int i = l; i <= r; i++)
  20. #define FORD(i,l,r) for (int i = l; i >= r; i--)
  21. #define Debug(a,n) for (int i = 1; i <= n; i++) cout << a[i] << " "; cout << endl
  22.  
  23. using namespace std;
  24.  
  25. typedef long long ll;
  26. typedef vector<int> vi;
  27. typedef pair<int,int> vii;
  28. typedef unsigned long long ull;
  29. typedef vector<vector<int>> vvi;
  30. int fastMax(int x, int y) { return (((y-x)>>(32-1))&(x^y))^y; }
  31.  
  32. const int N = 1e5 + 5;
  33. const int oo = INT_MAX;
  34. const int mod = 1e9 + 7;
  35. const int d4x[4] = {-1, 0, 1, 0} , d4y[4] = {0, 1, 0, -1};
  36. const int d8x[8] = {-1, -1, 0, 1, 1, 1, 0, -1}, d8y[8] = {0, 1, 1, 1, 0, -1, -1, -1};
  37.  
  38. vector<int> dsk[N];
  39. int n, m, S, dis[N];
  40. bool visited[N];
  41.  
  42. inline void Read_Input() {
  43. cin >> n >> m >> S;
  44. for (int i = 1; i <= m; i++) {
  45. int u, v;
  46. cin >> u >> v;
  47. dsk[u].push_back(v);
  48. dsk[v].push_back(u);
  49. }
  50. }
  51.  
  52. inline void Solve() {
  53. dis[S] = 0;
  54. visited[S] = true;
  55. queue<int> Q;
  56. Q.push(S);
  57.  
  58. while (Q.size() != 0) {
  59. int u = Q.front();
  60. Q.pop();
  61.  
  62. for (int v : dsk[u]) if (visited[v] == false) {
  63. visited[v] = true;
  64. dis[v] = dis[u] + 1;
  65. Q.push(v);
  66. }
  67. }
  68.  
  69. vector<pair<int, int>> V;
  70.  
  71. FOR(i, 1, n)
  72. if (visited[i] == true)
  73. V.push_back({dis[i], i});
  74.  
  75. sort(V.begin(), V.end());
  76.  
  77. /// first - khoang cach -> sort
  78.  
  79. /// second - ten dinh
  80.  
  81.  
  82. for (pair<int, int> T : V)
  83. cout << T.second << " " << T.first << endl;
  84. }
  85.  
  86. Ti20_ntson {
  87. // freopen(TASK".INP","r",stdin);
  88. // freopen(TASK".OUT","w",stdout);
  89. ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
  90. int T = 1;
  91. // cin >> T;
  92. while (T -- ) {
  93. Read_Input();
  94. Solve();
  95. }
  96. }
  97.  
  98.  
  99.  
Success #stdin #stdout 0.01s 5908KB
stdin
Standard input is empty
stdout
Standard output is empty