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

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
// #include <boost/math/common_factor.hpp>
#include <bits/stdc++.h>
using namespace std;
template <class T1, class T2>
ostream &operator<<(ostream &out, pair<T1, T2> p) {
  out << p.first << ' ' << p.second;
  return out;
}

template <class T1, class T2>
istream &operator>>(istream &in, pair<T1, T2> &p) {
  in >> p.first >> p.second;
  return in;
}

template <class T> istream &operator>>(istream &in, vector<T> &v) {
  for (auto &x : v)
    in >> x;
  return in;
}

template <class T> ostream &operator<<(ostream &out, vector<vector<T>> &v) {
  for (auto &x : v)
    out << x << '\\n';
  return out;
}

template <class T> ostream &operator<<(ostream &out, vector<T> &v) {
  for (auto x : v)
    out << x << ' ';
  return out;
}

#define ll long long
#define all(sdk) sdk.begin(), sdk.end()
#define mll map<int, int>
#define pb push_back
#define rep(i, a, b) for (int i = a; i < b; ++i)
#define repd(i, a, b) for (int i = a; i >= b; --i)
#define mp make_pair
#define hell 1000000007
#define endl '\\n'
#define vvll vector<vector<int>>
#define vll vector<int>
#define mint map<int, int>
#define sz(x) (int)x.size()
#define sll set<int>
#define pii pair<int, int>
#define F first
#define S second
#ifndef ONLINE_JUDGE
#define deb(x...)                                                              \\
  cerr << "[" << #x << "] = [";                                                \\
  _print(x)
#else
#define deb(x...)
#endif
// typedef tree<
// int,
// null_type,
// less<int>,
// rb_tree_tag,
// tree_order_statistics_node_update>
// ordered_set;
#define maxn 200005
#define ios                                                                    \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(NULL);                                                               \\
  cout.tie(NULL)
// int pow(int a, int b, int m)
// {
// 	int ans=1;
// 	while(b)
// 	{
// 		if(b&1)
// 			ans=(ans*a)%m;
// 		b/=2;
// 		a=(a*a)%m;
// 	}
// 	return ans;
// }

// int fact[N], invfact[N];

// int modinv(int k)
// {
// 	return pow(k, MOD-2, MOD);
// }

// void precompute()
// {
// 	fact[0]=fact[1]=1;
// 	for(int i=2;i<N;i++)
// 	{
// 		fact[i]=fact[i-1]*i;
// 		fact[i]%=MOD;
// 	}
// 	invfact[N-1]=modinv(fact[N-1]);
// 	for(int i=N-2;i>=0;i--)
// 	{
// 		invfact[i]=invfact[i+1]*(i+1);
// 		invfact[i]%=MOD;
// 	}
// }

// int nCr(int x, int y)
// {
// 	if(y>x)
// 		return 0;
// 	int num=fact[x];
// 	num*=invfact[y];
// 	num%=MOD;
// 	num*=invfact[x-y];
// 	num%=MOD;
// 	return num;
// }
bool isPrime(ll n) {
  // Corner cases
  if (n <= 1)
    return false;
  if (n <= 3)
    return true;

  // This is checked so that we can skip
  // middle five numbers in below loop
  if (n % 2 == 0 || n % 3 == 0)
    return false;

  for (int i = 5; i * i <= n; i = i + 6)
    if (n % i == 0 || n % (i + 2) == 0)
      return false;

  return true;
}
long long power(long long x, long long int y, long long mod) {
  long long res = 1;
  while (y > 0) {
    if (y & 1)
      res = (res * x) % mod;
    y = y >> 1;
    x = (x * x) % mod;
  }
  return res;
}
int main() {
  ios;
  ll n, x;
  cin >> n;
  map<int, int> m;
  rep(i, 1, 106) {
    rep(j, 1, 106) {
      rep(k, 1, 106) {
        x = i * i + j * j + k * k + i * j + j * k + i * k;
        if (x > n) {
          break;
        }
        m[x]++;
      }
    }
  }
  rep(i, 1, n + 1) cout << m[i] << endl;
  return 0;
}

Error: TLE

Fixed submission:

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
// #include <boost/math/common_factor.hpp>
#include <bits/stdc++.h>
using namespace std;
template <class T1, class T2>
ostream &operator<<(ostream &out, pair<T1, T2> p) {
  out << p.first << ' ' << p.second;
  return out;
}

template <class T1, class T2>
istream &operator>>(istream &in, pair<T1, T2> &p) {
  in >> p.first >> p.second;
  return in;
}

template <class T> istream &operator>>(istream &in, vector<T> &v) {
  for (auto &x : v)
    in >> x;
  return in;
}

template <class T> ostream &operator<<(ostream &out, vector<vector<T>> &v) {
  for (auto &x : v)
    out << x << '\\n';
  return out;
}

template <class T> ostream &operator<<(ostream &out, vector<T> &v) {
  for (auto x : v)
    out << x << ' ';
  return out;
}

#define ll long long
#define all(sdk) sdk.begin(), sdk.end()
#define mll map<int, int>
#define pb push_back
#define rep(i, a, b) for (int i = a; i < b; ++i)
#define repd(i, a, b) for (int i = a; i >= b; --i)
#define mp make_pair
#define hell 1000000007
#define endl '\\n'
#define vvll vector<vector<int>>
#define vll vector<int>
#define mint map<int, int>
#define sz(x) (int)x.size()
#define sll set<int>
#define pii pair<int, int>
#define F first
#define S second
#ifndef ONLINE_JUDGE
#define deb(x...)                                                              \\
  cerr << "[" << #x << "] = [";                                                \\
  _print(x)
#else
#define deb(x...)
#endif
// typedef tree<
// int,
// null_type,
// less<int>,
// rb_tree_tag,
// tree_order_statistics_node_update>
// ordered_set;
#define maxn 200005
#define ios                                                                    \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(NULL);                                                               \\
  cout.tie(NULL)
// int pow(int a, int b, int m)
// {
// 	int ans=1;
// 	while(b)
// 	{
// 		if(b&1)
// 			ans=(ans*a)%m;
// 		b/=2;
// 		a=(a*a)%m;
// 	}
// 	return ans;
// }

// int fact[N], invfact[N];

// int modinv(int k)
// {
// 	return pow(k, MOD-2, MOD);
// }

// void precompute()
// {
// 	fact[0]=fact[1]=1;
// 	for(int i=2;i<N;i++)
// 	{
// 		fact[i]=fact[i-1]*i;
// 		fact[i]%=MOD;
// 	}
// 	invfact[N-1]=modinv(fact[N-1]);
// 	for(int i=N-2;i>=0;i--)
// 	{
// 		invfact[i]=invfact[i+1]*(i+1);
// 		invfact[i]%=MOD;
// 	}
// }

// int nCr(int x, int y)
// {
// 	if(y>x)
// 		return 0;
// 	int num=fact[x];
// 	num*=invfact[y];
// 	num%=MOD;
// 	num*=invfact[x-y];
// 	num%=MOD;
// 	return num;
// }
bool isPrime(ll n) {
  // Corner cases
  if (n <= 1)
    return false;
  if (n <= 3)
    return true;

  // This is checked so that we can skip
  // middle five numbers in below loop
  if (n % 2 == 0 || n % 3 == 0)
    return false;

  for (int i = 5; i * i <= n; i = i + 6)
    if (n % i == 0 || n % (i + 2) == 0)
      return false;

  return true;
}
long long power(long long x, long long int y, long long mod) {
  long long res = 1;
  while (y > 0) {
    if (y & 1)
      res = (res * x) % mod;
    y = y >> 1;
    x = (x * x) % mod;
  }
  return res;
}
int main() {
  ios;
  int n, x;
  cin >> n;
  map<int, int> m;
  rep(i, 1, n + 1) {
    rep(j, 1, n + 1) {
      rep(k, 1, n + 1) {
        x = i * i + j * j + k * k + i * j + j * k + i * k;
        // cout << x<<endl;
        if (i == j || i == k || j == k)
          m[x]++;
        else {
          m[x]++;
          m[x]++;
          m[x]++;
        }
        if (x >= n) {
          break;
        }
      }
    }
  }
  rep(i, 1, n + 1) cout << m[i] << endl;
  return 0;
}