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

// Best practice

#include <bits/stdc++.h>

#define int long long
#define pb push_back
#define pf emplace_front
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()
#define pii pair<int, int>
#define psi pair<string, int>
#define vi vector<int>
#define vpii vector<pii>
#define vvi vector<vi>
#define sz(x) (int)(x).size()
#define x first
#define y second
#define endl '\\n'
#define tezz                                                                   \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(0);                                                                  \\
  cout.tie(0);
#define MOD 1000000007
#define hell 998244353
#define prec(n) fixed << setprecision(n)
#define ini(a, i) memset(a, i, sizeof(a))
#define output(x) cout << (x ? "YES" : "NO") << endl;
using namespace std;

#define debug(vec)                                                             \\
  cout << (#vec) << " : [ ";                                                   \\
  for (auto &i : vec)                                                          \\
    cout << i << " ";                                                          \\
  cout << "]" << endl
#define debugp(vec)                                                            \\
  cout << (#vec) << " : [ ";                                                   \\
  for (auto &i : vec)                                                          \\
    cout << "(" << i.x << "," << i.y << ")"                                    \\
         << " ";                                                               \\
  cout << "]" << endl
#define trace(args...)                                                         \\
  {                                                                            \\
    string _s = #args;                                                         \\
    replace(_s.begin(), _s.end(), ',', ' ');                                   \\
    stringstream _ss(_s);                                                      \\
    istream_iterator<string> _it(_ss);                                         \\
    err(_it, args);                                                            \\
    cout << endl;                                                              \\
  }
void err(istream_iterator<string> it) {}
template <typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
  cout << "[" << *it << ": " << a << "]\\t";
  err(++it, args...);
}

// const int dx[4] = { -1, 1, 0, 0};
// const int dy[4] = {0, 0, -1, 1};
// int dX[] = { -1, -1, -1, 0, 0, 1, 1, 1 };
// int dY[] = { -1, 0, 1, -1, 1, -1, 0, 1 };

// Code from Here
// -------------------------------------------------------------------------------

const int nax = 2e5 + 5;
set<int> adj[nax];
int vis[nax];

int dfs(int k) {
  vis[k] = 1;
  int ans = 0;
  for (auto it : adj[k]) {
    if (!vis[it]) {
      ans += dfs(it);
    }
  }
  return ans + 1;
}

signed main() {
  tezz

      int n,
      m, p, q;
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    cin >> p >> q;
    adj[p].insert(q);
    adj[q].insert(p);
  }
  int ans = 1;
  for (int i = 1; i <= n; i++) {
    if (!vis[i]) {
      ans = max(ans, dfs(i));
    }
  }
  cout << ans << endl;

  return 0;
}

Error: 0

Fixed submission:

// Best practice

#include <bits/stdc++.h>

#define int long long
#define pb push_back
#define pf emplace_front
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()
#define pii pair<int, int>
#define psi pair<string, int>
#define vi vector<int>
#define vpii vector<pii>
#define vvi vector<vi>
#define sz(x) (int)(x).size()
#define x first
#define y second
#define endl '\\n'
#define tezz                                                                   \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(0);                                                                  \\
  cout.tie(0);
#define MOD 1000000007
#define hell 998244353
#define prec(n) fixed << setprecision(n)
#define ini(a, i) memset(a, i, sizeof(a))
#define output(x) cout << (x ? "YES" : "NO") << endl;
using namespace std;

#define debug(vec)                                                             \\
  cout << (#vec) << " : [ ";                                                   \\
  for (auto &i : vec)                                                          \\
    cout << i << " ";                                                          \\
  cout << "]" << endl
#define debugp(vec)                                                            \\
  cout << (#vec) << " : [ ";                                                   \\
  for (auto &i : vec)                                                          \\
    cout << "(" << i.x << "," << i.y << ")"                                    \\
         << " ";                                                               \\
  cout << "]" << endl
#define trace(args...)                                                         \\
  {                                                                            \\
    string _s = #args;                                                         \\
    replace(_s.begin(), _s.end(), ',', ' ');                                   \\
    stringstream _ss(_s);                                                      \\
    istream_iterator<string> _it(_ss);                                         \\
    err(_it, args);                                                            \\
    cout << endl;                                                              \\
  }
void err(istream_iterator<string> it) {}
template <typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
  cout << "[" << *it << ": " << a << "]\\t";
  err(++it, args...);
}

// const int dx[4] = { -1, 1, 0, 0};
// const int dy[4] = {0, 0, -1, 1};
// int dX[] = { -1, -1, -1, 0, 0, 1, 1, 1 };
// int dY[] = { -1, 0, 1, -1, 1, -1, 0, 1 };

// Code from Here
// -------------------------------------------------------------------------------

const int nax = 2e5 + 5;
vi adj[nax];
int vis[nax];

int dfs(int k, int par = -1) {
  vis[k] = 1;
  int ans = 0;
  for (auto it : adj[k]) {
    if (it != par) {
      ans += dfs(it, k);
    }
  }
  return ans + 1;
}

signed main() {
  tezz

      int n,
      m, p, q;
  cin >> n >> m;
  map<int, set<int>> mp;
  for (int i = 0; i < m; i++) {
    cin >> p >> q;
    adj[p].pb(q);
    adj[q].pb(p);
  }
  int ans = 1;
  for (int i = 1; i <= n; i++) {
    if (!vis[i]) {
      ans = max(ans, dfs(i));
    }
  }
  cout << ans << endl;

  return 0;
}