Problem p02678 (C++) — buggy submission, verdict: Runtime Error

//********************************************************************//
#include <bits/stdc++.h>
using namespace std;
#define endl "\\n"
#define MP make_pair
#define PB push_back
#define EB emplace_back
#define fi first
#define se second
#define RANGE(i, n) for (int i = 0; i < n; ++i)
#define FOR(i, a, b) for (int i = a; i < b; ++i)
#define DFOR(i, a, b) for (int i = a; i > b; --i)
#define DEB(x) cout << #x << ": " << x << endl
#define ALL(v) v.begin(), v.end()
#define SORT(v) sort(ALL(v))
#define DISPV(v)                                                               \\
  {                                                                            \\
    for (auto x___ : v)                                                        \\
      cout << x___ << " ";                                                     \\
    cout << endl;                                                              \\
  }
#define DISPM(m)                                                               \\
  {                                                                            \\
    for (auto x____ : m) {                                                     \\
      cout << x____.first << ": " << x____.second << endl;                     \\
    }                                                                          \\
  };
#define DISPMV(m)                                                              \\
  {                                                                            \\
    for (auto x_____ : m) {                                                    \\
      cout << x_____.first << ": ";                                            \\
      DISPV(x_____.second);                                                    \\
    }                                                                          \\
  };
using LL = long long;
using VI = vector<int>;
using VC = vector<char>;
using VS = vector<string>;
using VL = vector<long long>;
using VVI = vector<VI>;
using VVL = vector<VL>;
using MII = map<int, int>;
using MIVI = map<int, VI>;
using MSS = map<string, string>;
using MLL = map<LL, LL>;
int READ_INT() {
  int temp;
  cin >> temp;
  return temp;
} // read an int
LL READ_LONG() {
  LL temp;
  cin >> temp;
  return temp;
} // read a long long
void mcs(VI &series, int &max_sum) { // maximum contigous sub sum(kadane)
  int s = 0;
  for (auto x : series) {
    s += x;
    max_sum = max(max_sum, s);
    if (s < 0)
      s = 0;
  }
}
template <typename T> T MAX(T t) { return t; }
template <typename T, typename... Args> T MAX(T t, Args... args) {
  return max(t, MAX(args...));
}
const int MOD = int(1e9) + 7;
const int INF = 1e9 + 5;
const double PI = acos(-1.0); // M_PI;
const double EPS = 1e-9;
//********************************************************************//

int n, m;
unordered_map<int, VI> adj_list;
VI visited;
VI parent;
VI level;
queue<int> q;

void bfs() {
  if (q.size() == 0) {
    return;
  }
  int node = q.front();
  int l = level[node];
  q.pop();
  for (auto child : adj_list[node]) {
    if (visited[child] == 0) {
      q.push(child);
      level[child] = l + 1;
      parent[child] = node;
      visited[child] = 1;
    }
  }
  visited[node] = 1;
  bfs();
}

int main() {
  ios::sync_with_stdio(false);
  // freopen("input.txt", "r", stdin);
  // freopen("output.txt", "w", stdout);

  cin >> n >> m;
  RANGE(i, m) {
    int a, b;
    cin >> a >> b;
    adj_list[a].push_back(b);
    adj_list[b].push_back(a);
  }

  // DISPMV(adj_list);
  visited.assign(n + 1, 0);
  level.assign(n + 1, 0);
  parent.assign(n + 1, 0);
  q.push(1);
  level[1] = 1;
  bfs();
  // DISPV(visited);
  // DISPV(level);
  // DISPV(parent);

  for (int i = 1; i <= n; ++i) {
    if (visited[i] == 0) {
      cout << "No";
      return 0;
    }
  }
  cout << "Yes\\n";
  for (int i = 2; i <= n; ++i) {
    cout << parent[i] << endl;
  }

  return 0;
}

/* complie flags
-Wall -Wextra -pedantic -std=c++11 -O2 -Wshadow -Wformat=2 -Wfloat-equal
-Wconversion -Wlogical-op -Wshift-overflow=2 -Wduplicated-cond -Wcast-qual
-Wcast-align -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_FORTIFY_SOURCE=2
-fsanitize=address -fsanitize=undefined -fno-sanitize-recover -fstack-protector
*/

Error: WA

Fixed submission:

//********************************************************************//
#include <bits/stdc++.h>
using namespace std;
#define endl "\\n"
#define MP make_pair
#define PB push_back
#define EB emplace_back
#define fi first
#define se second
#define RANGE(i, n) for (int i = 0; i < n; ++i)
#define FOR(i, a, b) for (int i = a; i < b; ++i)
#define DFOR(i, a, b) for (int i = a; i > b; --i)
#define DEB(x) cout << #x << ": " << x << endl
#define ALL(v) v.begin(), v.end()
#define SORT(v) sort(ALL(v))
#define DISPV(v)                                                               \\
  {                                                                            \\
    for (auto x___ : v)                                                        \\
      cout << x___ << " ";                                                     \\
    cout << endl;                                                              \\
  }
#define DISPM(m)                                                               \\
  {                                                                            \\
    for (auto x____ : m) {                                                     \\
      cout << x____.first << ": " << x____.second << endl;                     \\
    }                                                                          \\
  };
#define DISPMV(m)                                                              \\
  {                                                                            \\
    for (auto x_____ : m) {                                                    \\
      cout << x_____.first << ": ";                                            \\
      DISPV(x_____.second);                                                    \\
    }                                                                          \\
  };
using LL = long long;
using VI = vector<int>;
using VC = vector<char>;
using VS = vector<string>;
using VL = vector<long long>;
using VVI = vector<VI>;
using VVL = vector<VL>;
using MII = map<int, int>;
using MIVI = map<int, VI>;
using MSS = map<string, string>;
using MLL = map<LL, LL>;
int READ_INT() {
  int temp;
  cin >> temp;
  return temp;
} // read an int
LL READ_LONG() {
  LL temp;
  cin >> temp;
  return temp;
} // read a long long
void mcs(VI &series, int &max_sum) { // maximum contigous sub sum(kadane)
  int s = 0;
  for (auto x : series) {
    s += x;
    max_sum = max(max_sum, s);
    if (s < 0)
      s = 0;
  }
}
template <typename T> T MAX(T t) { return t; }
template <typename T, typename... Args> T MAX(T t, Args... args) {
  return max(t, MAX(args...));
}
const int MOD = int(1e9) + 7;
const int INF = 1e9 + 5;
const double PI = acos(-1.0); // M_PI;
const double EPS = 1e-9;
//********************************************************************//

int n, m;
unordered_map<int, VI> adj_list;
VI visited;
VI parent;
VI level;
queue<int> q;

void bfs() {
  if (q.size() == 0) {
    return;
  }
  int node = q.front();
  int l = level[node];
  q.pop();
  for (auto child : adj_list[node]) {
    if (!visited[child]) {
      q.push(child);
      level[child] = l + 1;
      parent[child] = node;
    }
  }
  visited[node] = 1;
  bfs();
}

int main() {
  ios::sync_with_stdio(false);
  // freopen("input.txt", "r", stdin);
  // freopen("output.txt", "w", stdout);

  cin >> n >> m;
  RANGE(i, m) {
    int a, b;
    cin >> a >> b;
    adj_list[a].push_back(b);
    adj_list[b].push_back(a);
  }

  // DISPMV(adj_list);
  visited.assign(n + 1, 0);
  level.assign(n + 1, 0);
  parent.assign(n + 1, 0);
  q.push(1);
  level[1] = 1;
  bfs();
  // DISPV(visited);
  // DISPV(level);
  // DISPV(parent);

  for (int i = 1; i <= n; ++i) {
    if (visited[i] == 0) {
      cout << "no";
      return 0;
    }
  }
  cout << "yes\\n";
  for (int i = 2; i <= n; ++i) {
    cout << parent[i] << endl;
  }

  return 0;
}

/* complie flags
-Wall -Wextra -pedantic -std=c++11 -O2 -Wshadow -Wformat=2 -Wfloat-equal
-Wconversion -Wlogical-op -Wshift-overflow=2 -Wduplicated-cond -Wcast-qual
-Wcast-align -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_FORTIFY_SOURCE=2
-fsanitize=address -fsanitize=undefined -fno-sanitize-recover -fstack-protector
*/