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

#include <iomanip>
#include <iostream>
#include <iterator>
#include <map>
#include <math.h>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using namespace std;
typedef long long ll;

#define REP(i, n) for (ll i = 0; i < ll(n); i++)
#define REPD(i, n) for (ll i = n - 1; i >= 0; i--)
#define FOR(i, a, b) for (ll i = a; i <= ll(b); i++)
#define FORD(i, a, b) for (ll i = a; i >= ll(b); i--)
// xにはvectorなどのコンテナ
#define ALL(x) x.begin(), x.end() // sortなどの引数を省略したい
#define SIZE(x) ll(x.size())      // sizeをsize_tからllに直しておく
// 定数
#define INF 1000000000000 // 10^12:極めて大きい値,∞
#define MOD 1000000007    // 10^9+7:合同式の法
#define MAXR 100000 // 10^5:配列の最大のrange(素数列挙などで使用)
// 略記
#define PB push_back // vectorヘの挿入
#define MP make_pair // pairのコンストラクタ
#define F first      // pairの一つ目の要素
#define S second     // pairの二つ目の要素
#define Umap unordered_map
#define Uset unordered_set

int main() {
  ll N;
  cin >> N;

  vector<ll> ans(N);
  ll x, y, z;
  if (N < 5) {
    for (x = 1; x * x < N; x++) {
      for (y = 1; y < (N - x * x - x); y++) {
        for (z = 1; z < (N - x * x - y * y - x * y - y - z); z++) {
          ll val = x * x + y * y + z * z + x * y + y * z + z * x;
          if (val > N)
            break;
          for (ll n = 0; n < N; n++) {
            if (val == (n + 1))
              ans.at(n)++;
          }
        }
      }
    }

    for (int i = 0; i < N; i++) {
      cout << ans.at(i) << endl;
    }

    return 0;
  }

  for (x = 1; x * x < (N - 5); x++) {
    for (y = 1; y < (N - x * x - x); y++) {
      for (z = 1; z < (N - x * x - y * y - x * y - y - z); z++) {
        ll val = x * x + y * y + z * z + x * y + y * z + z * x;
        if (val > N)
          break;
        for (ll n = 5; n < N; n++) {
          if (val == (n + 1))
            ans.at(n)++;
        }
      }
    }
  }

  for (int i = 0; i < N; i++) {
    cout << ans.at(i) << endl;
  }

  return 0;
}

Error: TLE

Fixed submission:

#include <iomanip>
#include <iostream>
#include <iterator>
#include <map>
#include <math.h>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using namespace std;
typedef long long ll;

#define REP(i, n) for (ll i = 0; i < ll(n); i++)
#define REPD(i, n) for (ll i = n - 1; i >= 0; i--)
#define FOR(i, a, b) for (ll i = a; i <= ll(b); i++)
#define FORD(i, a, b) for (ll i = a; i >= ll(b); i--)
// xにはvectorなどのコンテナ
#define ALL(x) x.begin(), x.end() // sortなどの引数を省略したい
#define SIZE(x) ll(x.size())      // sizeをsize_tからllに直しておく
// 定数
#define INF 1000000000000 // 10^12:極めて大きい値,∞
#define MOD 1000000007    // 10^9+7:合同式の法
#define MAXR 100000 // 10^5:配列の最大のrange(素数列挙などで使用)
// 略記
#define PB push_back // vectorヘの挿入
#define MP make_pair // pairのコンストラクタ
#define F first      // pairの一つ目の要素
#define S second     // pairの二つ目の要素
#define Umap unordered_map
#define Uset unordered_set

int main() {
  ll N;
  cin >> N;

  vector<ll> ans(N);
  ll x, y, z;
  if (N > 5) {
    for (x = 1; x * x < (N - 5); x++) {
      for (y = 1; y < (N - x * x - x); y++) {
        for (z = 1; z < (N - x * x - y * y - x * y - y - z); z++) {
          ll val = x * x + y * y + z * z + x * y + y * z + z * x;
          if (val > N)
            break;
          for (ll n = 5; n < N; n++) {
            if (val == (n + 1))
              ans.at(n)++;
          }
        }
      }
    }
  } else {
    for (x = 1; x * x < N; x++) {
      for (y = 1; y < (N - x * x - x); y++) {
        for (z = 1; z < (N - x * x - y * y - x * y - y - z); z++) {
          ll val = x * x + y * y + z * z + x * y + y * z + z * x;
          if (val > N)
            break;
          for (ll n = 0; n < N; n++) {
            if (val == (n + 1))
              ans.at(n)++;
          }
        }
      }
    }
  }

  for (int i = 0; i < N; i++) {
    cout << ans.at(i) << endl;
  }

  return 0;
}