Problem p02574 (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 mod 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<int, int>>
#define pii pair<int, int>
#define mii map<int, int>
#define msi map<string, int>
#define mci map<char, int>
#define mpiii map<pair<int, int>, 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 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 << endl
#define oo2(x, y) cout << x << " " << y << endl
#define oo3(x, y, z) cout << x << " " << y << " " << z << endl
#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 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];
}

int findGCD(vli arr, ll n) {
  ll result = arr[0];
  for (int i = 1; i < n; i++) {
    result = __gcd(arr[i], result);

    if (result == 1) {
      return 1;
    }
  }
  return result;
}

bool fine = 0;
vli a;

ll n, m;
const int maxi = 1e6 + 5;

void solve() {
  in(n);
  read(a, n);
  vi hash(maxi, 0);
  bool ok = true;
  forr(i, n) { hash[a[i]]++; }
  for (int i = 2; i < maxi; i++) {
    ll count = 0;
    for (int j = i; j < maxi; j += i) {
      count += hash[j];
    }
    if (count > 1) {
      ok = false;
      break;
    }
  }
  if (ok) {
    cout << "pairwise coprime";
    rr;
  }
  int ans = findGCD(a, n);
  if (ans == 1) {
    cout << "setwise coprime";
    rr;
  }
  cout << "not coprime";
}

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: -11

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 mod 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<int, int>>
#define pii pair<int, int>
#define mii map<int, int>
#define msi map<string, int>
#define mci map<char, int>
#define mpiii map<pair<int, int>, 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 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 << endl
#define oo2(x, y) cout << x << " " << y << endl
#define oo3(x, y, z) cout << x << " " << y << " " << z << endl
#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 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];
}

int findGCD(vli arr, ll n) {
  ll result = arr[0];
  for (int i = 1; i < n; i++) {
    result = __gcd(arr[i], result);

    if (result == 1) {
      return 1;
    }
  }
  return result;
}

bool fine = 0;
vli a;

ll n, m;
const int maxi = 1e6 + 5;

void solve() {
  in(n);
  read(a, n);
  int ans = findGCD(a, n);
  vi hash(maxi, 0);
  bool ok = true;
  forr(i, n) { hash[a[i]]++; }
  for (int i = 2; i < maxi; i++) {
    ll count = 0;
    for (int j = i; j < maxi; j += i) {
      if (hash[a[j]])
        count++;
    }
    if (count > 1) {
      ok = false;
      break;
    }
  }
  if (ok) {
    cout << "pairwise coprime";
    rr;
  }
  if (ans == 1) {
    cout << "setwise coprime";
    rr;
  }
  cout << "not coprime";
}

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;
}