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

#include <bits/stdc++.h>

#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define FAST()                                                                 \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(NULL);                                                               \\
  cout.tie(NULL)

using namespace std;
using ll = long long;

int main() {
  FAST();
  ll n, x;
  cin >> n;
  string ans = "";
  while (n > 0) {
    x = (n - 1) % 26;
    ans += (char)(x + 'a');
    n = (n - x - 1) / 26;
  }
  reverse(ans.begin(), ans.end());
  cout << ans << endl;
  return 0;
}


Error: 0

Fixed submission:

#include <bits/stdc++.h>

#define rep(i, n) for (int i = 0; i < (int)(n); i++)

using namespace std;
using ll = long long;

int main() {
  ll n;
  cin >> n;
  ll newyork = n;
  n *= 25;
  n++;
  ll a = 0;
  ll c = 0;
  for (int i = 1;; i++) {
    c += pow(26, i);
    if (n <= c)
      break;
    a++;
  }
  string ans = "";
  if (a != 1) {
    for (int i = 2; i < a; i++) {
      newyork -= pow(26, i - 1);
      a++;
    }
  }
  vector<ll> vec(a);
  while (newyork / 26 != 0) {
    ll b = newyork % 26;
    vec.push_back(b);
    vec.erase(vec.begin());
  }
  ll b = newyork % 26;
  vec.push_back(b);
  vec.erase(vec.begin());

  for (int i = 0; i < vec.size() - 1; i++) {
    if (vec[i] == 0) {
      ans += "a";
    } else if (vec[i] == 1) {
      ans += "b";
    } else if (vec[i] == 2) {
      ans += "c";
    } else if (vec[i] == 3) {
      ans += "d";
    } else if (vec[i] == 4) {
      ans += "e";
    } else if (vec[i] == 5) {
      ans += "f";
    } else if (vec[i] == 6) {
      ans += "g";
    } else if (vec[i] == 7) {
      ans += "h";
    } else if (vec[i] == 8) {
      ans += "i";
    } else if (vec[i] == 9) {
      ans += "j";
    } else if (vec[i] == 10) {
      ans += "k";
    } else if (vec[i] == 11) {
      ans += "l";
    } else if (vec[i] == 12) {
      ans += "m";
    } else if (vec[i] == 13) {
      ans += "n";
    } else if (vec[i] == 14) {
      ans += "o";
    } else if (vec[i] == 15) {
      ans += "p";
    } else if (vec[i] == 16) {
      ans += "q";
    } else if (vec[i] == 17) {
      ans += "r";
    } else if (vec[i] == 18) {
      ans += "s";
    } else if (vec[i] == 19) {
      ans += "t";
    } else if (vec[i] == 20) {
      ans += "u";
    } else if (vec[i] == 21) {
      ans += "v";
    } else if (vec[i] == 22) {
      ans += "w";
    } else if (vec[i] == 23) {
      ans += "x";
    } else if (vec[i] == 24) {
      ans += "y";
    } else if (vec[i] == 25) {
      ans += "z";
    }
  }
  if (vec[a - 1] == 1) {
    ans += "a";
  } else if (vec[a - 1] == 2) {
    ans += "b";
  } else if (vec[a - 1] == 3) {
    ans += "c";
  } else if (vec[a - 1] == 4) {
    ans += "d";
  } else if (vec[a - 1] == 5) {
    ans += "e";
  } else if (vec[a - 1] == 6) {
    ans += "f";
  } else if (vec[a - 1] == 7) {
    ans += "g";
  } else if (vec[a - 1] == 8) {
    ans += "h";
  } else if (vec[a - 1] == 9) {
    ans += "i";
  } else if (vec[a - 1] == 10) {
    ans += "j";
  } else if (vec[a - 1] == 11) {
    ans += "k";
  } else if (vec[a - 1] == 12) {
    ans += "l";
  } else if (vec[a - 1] == 13) {
    ans += "m";
  } else if (vec[a - 1] == 14) {
    ans += "n";
  } else if (vec[a - 1] == 15) {
    ans += "o";
  } else if (vec[a - 1] == 16) {
    ans += "p";
  } else if (vec[a - 1] == 17) {
    ans += "q";
  } else if (vec[a - 1] == 18) {
    ans += "r";
  } else if (vec[a - 1] == 19) {
    ans += "s";
  } else if (vec[a - 1] == 20) {
    ans += "t";
  } else if (vec[a - 1] == 21) {
    ans += "u";
  } else if (vec[a - 1] == 22) {
    ans += "v";
  } else if (vec[a - 1] == 23) {
    ans += "w";
  } else if (vec[a - 1] == 24) {
    ans += "x";
  } else if (vec[a - 1] == 25) {
    ans += "y";
  } else if (vec[a - 1] == 26) {
    ans += "z";
  }

  cout << ans << endl;
  return 0;
}