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

#include "bits/stdc++.h"

#define REP(i, n) for (ll i = 0; i < n; ++i)
#define RREP(i, n) for (ll i = n - 1; i >= 0; --i)
#define FOR(i, m, n) for (ll i = m; i < n; ++i)
#define RFOR(i, m, n) for (ll i = n - 1; i >= m; --i)
#define ALL(v) (v).begin(), (v).end()
#define PB(a) push_back(a)
#define UNIQUE(v) v.erase(unique(ALL(v)), v.end());
#define DUMP(v)                                                                \\
  REP(i, (v).size()) {                                                         \\
    cout << v[i];                                                              \\
    if (i != v.size() - 1)                                                     \\
      cout << " ";                                                             \\
    else                                                                       \\
      cout << endl;                                                            \\
  }
#define INF 1000000001ll
#define MOD 1000000007ll
#define EPS 1e-9

const int dx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
const int dy[8] = {0, 1, 1, 1, 0, -1, -1, -1};

using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
ll max(ll a, int b) { return max(a, ll(b)); }
ll max(int a, ll b) { return max(ll(a), b); }
///(?´????????`)(?´????????`)(?´????????`)(?´????????`)(?´????????`)(?´????????`)///
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  while (1) {
    int n;
    cin >> n;
    if (!n)
      break;
    vi v(n);
    REP(i, n) {
      string s;
      cin >> s;
      if (s[0] != 'x')
        v[i] = stoi(s);
      else
        v[i] = 2 * INF;
    }
    int flag = 1;
    REP(i, n - 1) {
      if (flag) {
        if (v[i] == 2 * INF && v[i + 1] == 2 * INF) {
          cout << "none" << endl;
          flag = 0;
        } else if (v[i] != 2 * INF && v[i + 1] != 2 * INF) {
          if (i % 2 == 0 && v[i] >= v[i + 1]) {
            cout << "none" << endl;
            flag = 0;
          } else if (i % 2 == 1 && v[i] <= v[i + 1]) {
            cout << "none" << endl;
            flag = 0;
          }
        }
      }
    }
    if (flag) {
      int u = INF + 1, l = -INF - 1;
      REP(i, n) {
        if (v[i] == 2 * INF) {
          if (i % 2 == 0) {
            if (i != 0)
              u = min(u, v[i - 1] - 1);
            if (i != n - 1)
              u = min(u, v[i + 1] - 1);
          } else {
            l = max(l, v[i - 1] + 1);
            if (i != n - 1)
              l = max(l, v[i + 1] + 1);
          }
        }
      }
      if (u == l)
        cout << u << endl;
      else if (l < u)
        cout << "ambiguous" << endl;
      else
        cout << "none" << endl;
    }
  }
  return 0;
}

Error: -6

Fixed submission:

#include "bits/stdc++.h"

#define REP(i, n) for (ll i = 0; i < n; ++i)
#define RREP(i, n) for (ll i = n - 1; i >= 0; --i)
#define FOR(i, m, n) for (ll i = m; i < n; ++i)
#define RFOR(i, m, n) for (ll i = n - 1; i >= m; --i)
#define ALL(v) (v).begin(), (v).end()
#define PB(a) push_back(a)
#define UNIQUE(v) v.erase(unique(ALL(v)), v.end());
#define DUMP(v)                                                                \\
  REP(i, (v).size()) {                                                         \\
    cout << v[i];                                                              \\
    if (i != v.size() - 1)                                                     \\
      cout << " ";                                                             \\
    else                                                                       \\
      cout << endl;                                                            \\
  }
#define INF 1000000001ll
#define MOD 1000000007ll
#define EPS 1e-9

const int dx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
const int dy[8] = {0, 1, 1, 1, 0, -1, -1, -1};

using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
ll max(ll a, int b) { return max(a, ll(b)); }
ll max(int a, ll b) { return max(ll(a), b); }
///(?´????????`)(?´????????`)(?´????????`)(?´????????`)(?´????????`)(?´????????`)///
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  abort();
  while (1) {
    int n;
    cin >> n;

    if (!n)
      break;
    vi v(n);
    REP(i, n) {
      string s;
      cin >> s;
      if (s[0] != 'x')
        v[i] = stoi(s);
      else
        v[i] = 2 * INF;
    }
    DUMP(v);
    int flag = 1;
    REP(i, n - 1) {
      if (flag) {
        if (v[i] == 2 * INF && v[i + 1] == 2 * INF) {
          cout << "none" << endl;
          flag = 0;
        } else if (v[i] != 2 * INF && v[i + 1] != 2 * INF) {
          if (i % 2 == 0 && v[i] >= v[i + 1]) {
            cout << "none" << endl;
            flag = 0;
          } else if (i % 2 == 1 && v[i] <= v[i + 1]) {
            cout << "none" << endl;
            flag = 0;
          }
        }
      }
    }
    if (flag) {
      int u = INF + 1, l = -INF - 1;
      REP(i, n) {
        if (v[i] == 2 * INF) {
          if (i % 2 == 0) {
            if (i != 0)
              u = min(u, v[i - 1] - 1);
            if (i != n - 1)
              u = min(u, v[i + 1] - 1);
          } else {
            l = max(l, v[i - 1] + 1);
            if (i != n - 1)
              l = max(l, v[i + 1] + 1);
          }
        }
      }
      if (u == l)
        cout << u << endl;
      else if (l < u)
        cout << "ambigous" << endl;
      else
        cout << "none" << endl;
    }
  }
  return 0;
}