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

// Jay Shree Krishna

#include "bits/stdc++.h"
#define fast                                                                   \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(NULL);                                                               \\
  cout.tie(NULL)
#define ll long long int
#define inf 1e18 + 5
#define sr string
#define M 1000000007
#define start                                                                  \\
  int t;                                                                       \\
  cin >> t;                                                                    \\
  while (t--)
#define db(x) cout << #x << "=" << x << "\\n"
#define db2(a, b) cout << #a << ": " << a << " , " << #b << ": " << b << endl;
#define db3(a, b, c)                                                           \\
  cout << #a << ": " << a << " , " << #b << ": " << b << " , " << #c << ": "   \\
       << c << endl;
#define forr(i, n) for (int i = 0; i < n; i++)
#define fr(i, n) for (int i = 1; i <= n; i++)
#define rep(i, j, k) for (int i = j; i < k; i++)
#define rp(i, j, k) for (int i = j; i <= k; i++)
#define nn "\\n"
#define en "\\n"
#define vvi vector<vector<int>>
#define vi vector<int>
#define si set<int>
#define mlsi multiset<int>
#define vc vector<char>
#define vli vector<long long int>
#define vpii vector<pair<ll, ll>>
#define pii pair<ll, ll>
#define mii map<ll, ll>
#define msi map<string, int>
#define mci map<char, int>
#define umii unordered_map<int, int>
#define umsi unordered_map<string, int>
#define umci unordered_map<char, int>
#define mkp make_pair
#define pb push_back
#define eb emplace_back
#define all(x) x.begin(), x.end()
#define sortv(x) sort(x.begin(), x.end())
#define sorta(x, n) sort(x, x + n)
#define sorted(x) is_sorted(x.begin(), x.end())
#define print_all(x)                                                           \\
  for (auto t : x)                                                             \\
    cout << t << " ";                                                          \\
  cout << en;
#define mxe(x) *max_element(all(x))
#define mne(x) *min_element(all(x))
#define ub upper_bound
#define lb lower_bound
#define go(x) for (auto &[u, v] : x)
#define in(x) cin >> x
#define in2(x, y) cin >> x >> y
#define in3(x, y, z) cin >> x >> y >> z
#define in4(x, y, z, v) cin >> x >> y >> z >> v
#define oo(x) cout << x << en
#define oo2(x, y) cout << x << " " << y << en
#define oo3(x, y, z) cout << x << " " << y << " " << z << en
#define ood(n, x) cout << fixed << setprecision(n) << x << "\\n"
#define sz(x) x.size()
#define ff first
#define ss second
#define ooy cout << "Yes\\n"
#define oon cout << "No\\n"
#define ooyy cout << "YES\\n"
#define oonn cout << "NO\\n"
#define rr return
#define cc continue

using namespace std;

template <class T> bool ckmin(T &a, const T &b) { return a > b ? a = b, 1 : 0; }
template <class T> bool ckmax(T &a, const T &b) { return a < b ? a = b, 1 : 0; }

void read(vli &a, int n) {
  a.resize(n);
  forr(i, n) cin >> a[i];
}

bool fine = 0;
vli a, b;
ll n, m;
const int N = 1e5 + 9;
vi adj[N];
vi vis(N);

void solve() {
  in2(n, m);
  int u, v;
  vi edges;
  forr(i, m) {
    cin >> u >> v;
    u--;
    v--;
    adj[u].pb(v);
    adj[v].pb(u);
    edges.pb(u);
    edges.pb(v);
  }
  ll ans = 0;
  forr(i, n) {
    // int x=edges[i];
    if (!vis[i]) {
      queue<int> q;
      q.push(i);
      while (q.size()) {
        int curr = q.front();
        vis[curr] = 1;
        q.pop();
        for (auto v : adj[curr]) {
          if (!vis[v])
            q.push(v);
        }
      }
      ans++;
    }
  }
  oo(ans - 1);
}

int main() {
#ifndef ONLINE_JUDGE
  freopen("input1.txt", "r", stdin);
  freopen("error.txt", "w", stderr);
  freopen("output1.txt", "w", stdout);
#endif
  fast;
  if (fine) {
    start { solve(); }
  } else
    solve();
  return 0;
}


Error: WA

Fixed submission:

// Jay Shree Krishna

#include "bits/stdc++.h"
#define fast                                                                   \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(NULL);                                                               \\
  cout.tie(NULL)
#define ll long long int
#define inf 1e18 + 5
#define sr string
#define M 1000000007
#define start                                                                  \\
  int t;                                                                       \\
  cin >> t;                                                                    \\
  while (t--)
#define db(x) cout << #x << "=" << x << "\\n"
#define db2(a, b) cout << #a << ": " << a << " , " << #b << ": " << b << endl;
#define db3(a, b, c)                                                           \\
  cout << #a << ": " << a << " , " << #b << ": " << b << " , " << #c << ": "   \\
       << c << endl;
#define forr(i, n) for (int i = 0; i < n; i++)
#define fr(i, n) for (int i = 1; i <= n; i++)
#define rep(i, j, k) for (int i = j; i < k; i++)
#define rp(i, j, k) for (int i = j; i <= k; i++)
#define nn "\\n"
#define en "\\n"
#define vvi vector<vector<int>>
#define vi vector<int>
#define si set<int>
#define mlsi multiset<int>
#define vc vector<char>
#define vli vector<long long int>
#define vpii vector<pair<ll, ll>>
#define pii pair<ll, ll>
#define mii map<ll, ll>
#define msi map<string, int>
#define mci map<char, int>
#define umii unordered_map<int, int>
#define umsi unordered_map<string, int>
#define umci unordered_map<char, int>
#define mkp make_pair
#define pb push_back
#define eb emplace_back
#define all(x) x.begin(), x.end()
#define sortv(x) sort(x.begin(), x.end())
#define sorta(x, n) sort(x, x + n)
#define sorted(x) is_sorted(x.begin(), x.end())
#define print_all(x)                                                           \\
  for (auto t : x)                                                             \\
    cout << t << " ";                                                          \\
  cout << en;
#define mxe(x) *max_element(all(x))
#define mne(x) *min_element(all(x))
#define ub upper_bound
#define lb lower_bound
#define go(x) for (auto &[u, v] : x)
#define in(x) cin >> x
#define in2(x, y) cin >> x >> y
#define in3(x, y, z) cin >> x >> y >> z
#define in4(x, y, z, v) cin >> x >> y >> z >> v
#define oo(x) cout << x << en
#define oo2(x, y) cout << x << " " << y << en
#define oo3(x, y, z) cout << x << " " << y << " " << z << en
#define ood(n, x) cout << fixed << setprecision(n) << x << "\\n"
#define sz(x) x.size()
#define ff first
#define ss second
#define ooy cout << "Yes\\n"
#define oon cout << "No\\n"
#define ooyy cout << "YES\\n"
#define oonn cout << "NO\\n"
#define rr return
#define cc continue

using namespace std;

template <class T> bool ckmin(T &a, const T &b) { return a > b ? a = b, 1 : 0; }
template <class T> bool ckmax(T &a, const T &b) { return a < b ? a = b, 1 : 0; }

void read(vli &a, int n) {
  a.resize(n);
  forr(i, n) cin >> a[i];
}

bool fine = 0;
vli a, b;
ll n, m;
const int N = 1e5;
vi adj[N];
vi vis(N);

void solve() {
  in2(n, m);
  int u, v;
  vi edges;
  forr(i, m) {
    cin >> u >> v;
    u--;
    v--;
    adj[u].pb(v);
    adj[v].pb(u);
    edges.pb(u);
    edges.pb(v);
  }
  ll ans = 0;
  forr(i, sz(edges)) {
    int x = edges[i];
    if (!vis[i]) {
      queue<int> q;
      q.push(x);
      while (q.size()) {
        int curr = q.front();
        vis[curr] = 1;
        q.pop();
        for (auto v : adj[curr]) {
          if (!vis[v])
            q.push(v);
        }
      }
      ans++;
    }
  }
  oo(ans - 1);
}

int main() {
#ifndef ONLINE_JUDGE
  freopen("input1.txt", "r", stdin);
  freopen("error.txt", "w", stderr);
  freopen("output1.txt", "w", stdout);
#endif
  fast;
  if (fine) {
    start { solve(); }
  } else
    solve();
  return 0;
}