Problem p02608 (C++) — buggy submission, verdict: Time Limit Exceeded

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define REP(i, n) for (int i = 0; i < (int)(n); i++)
#define REP2(i, n) for (int i = 1; i <= (int)(n); i++)
#define FOR(i, m, n) for (int i = m; i < n; i++)
#define SORT(x) sort(x.begin(), x.end())
#define REVE(x) reverse(x.begin(), x.end())
#define ALL(x) (x).begin(), (x).end()
#define SUM(x) accumulate(x.begin(), x.end(), 0);
#define vint(v, n)                                                             \\
  vector<int> v(n);                                                            \\
  REP(i, n) scanf("%lld", &v[i]);
#define vstr(v, n)                                                             \\
  vector<string> v(n);                                                         \\
  REP(i, n) scanf("%lld", &v[i]);
struct initon {
  initon() {
    cin.tie(0);
    ios::sync_with_stdio(false);
  };
};
bool is_prime(const unsigned n) {
  switch (n) {
  case 0: // fall-through
  case 1:
    return false;
  case 2: // fall-through
  case 3:
    return true;
  } // n > 3 が保証された

  if (n % 2 == 0 || n % 3 == 0)
    return false;
  // n は 2 と 3 のいずれの倍数でもないことが保証された
  // これより n は (6の倍数)-1 か (6の倍数)+1 である

  // 6の倍数前後の数を使って試し割りをする
  for (unsigned i = 5; i * i <= n; i += 6) {
    if (n % i == 0)
      return false; // (6の倍数)-1
    if (n % (i + 2) == 0)
      return false; // (6の倍数)+1
  }

  return true;
}
// 階乗
int factorial(int k) {
  int sum = 1;
  for (int i = 1; i <= k; ++i) {
    sum *= i;
  }
  return sum;
}
int k = 0, n = 0, m = 0, l = 0, r = 0, a = 0, b = 0, c = 0, d = 0, e = 0,
    ans = 1000, ans2 = 0, x = 0, y = 0;
string s, t, S;
signed main() {
  ios_base::sync_with_stdio(false);
  cin >> n;
  vector<int> A(n + 1);
  REP2(x, 100) {
    REP2(y, 100) {
      REP2(z, 100) {
        int t = (x * (x + y) + y * (y + z) + z * (z + x));
        if (t <= n) {
          A[t]++;
        }
      }
    }
  }
  REP2(i, n) cout << A[i] << endl;
}


Error: TLE

Fixed submission:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define REP(i, n) for (int i = 0; i < (int)(n); i++)
#define REP2(i, n) for (int i = 1; i <= (int)(n); i++)
#define FOR(i, m, n) for (int i = m; i < n; i++)
#define SORT(x) sort(x.begin(), x.end())
#define REVE(x) reverse(x.begin(), x.end())
#define ALL(x) (x).begin(), (x).end()
#define SUM(x) accumulate(x.begin(), x.end(), 0);
#define vint(v, n)                                                             \\
  vector<int> v(n);                                                            \\
  REP(i, n) scanf("%lld", &v[i]);
#define vstr(v, n)                                                             \\
  vector<string> v(n);                                                         \\
  REP(i, n) scanf("%lld", &v[i]);
int k = 0, n = 0, m = 0, l = 0, r = 0, a = 0, b = 0, c = 0, d = 0, e = 0,
    ans = 0, ans2 = 0, x = 0, y = 0;
string s, t, S;
signed main() {
  ios_base::sync_with_stdio(false);
  cin >> n;
  REP2(i, n) {
    REP2(x, 99) {
      REP2(y, 99) {
        REP2(z, 99) {
          if ((x * (x + y) + y * (y + z) + z * (z + x)) == i) {
            ans++;
          }
        }
      }
    }
    cout << ans << endl;
    ans = 0;
  }
}