Problem p02608 (C++)

Buggy submission (status: Runtime Error):
#include <bits/stdc++.h>
using namespace std;
// #define int long long
#define ll long long
#define sz(a) (int)(a.size())
#define pb push_back
#define all(c) c.begin(), c.end()
#define tr(it, c) for (auto it = c.begin(); it != c.end(); it++)
#define fr(i, a, n) for (int i = a; i < n; i++)
#define present(c, x) (c.find(x) != c.end()) // for set/map etc.
#define cpresent(c, x) (find(all(c), x) != c.end())
typedef pair<int, int> pi;
typedef vector<int> vi;
typedef vector<vector<int>> vvi;
typedef vector<long long> vll;
typedef vector<pair<int, int>> vp;
int N = 100001;
int mod = 1e9 + 7;
int min(int a, int b) {
  if (a < b)
    return a;
  else
    return b;
}
int max(ll a, ll b) {
  if (a > b)
    return a;
  else
    return b;
}
int power(int a, int b) {
  int res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1)
      res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
int gcd(int p, int q) {
  if (p % q == 0)
    return q;
  else {
    return gcd(q, p % q);
  }
}
bool comp(int a, int b) { return (a > b); }

void solve() {
  // int n;
  // cin>>n;
  // string s;
  // cin>>s;
  // int sum=0;
  // int c1=0;
  // for(int i=n-1;i>=0;i--)
  // {
  // 	if(s[i]=='1')
  // 	{
  // 		c1++;
  // 		sum+= pow(2,n-1-i);
  // 	}
  // }
  // int ans=0;
  // int cou=c1;
  // fr(i,0,n)
  // {
  // 	if(i=='1'){ans=sum-pow(2,n-1-i);cou=c1-1;}
  // 	else {ans= sum+ pow(2,n-1-i);cou=c1+1;}
  // 	int main=0;
  // 	while(ans!=0)
  // 	{
  // 		ans= ans%c1;
  // 	}
  // }
  int n;
  cin >> n;
  vi count1(n, 0);
  fr(i, 1, sqrt(n) + 1) {
    fr(j, 1, sqrt(n) + 1) {
      fr(k, 1, sqrt(n) + 1) {
        count1[i * i + j * j + k * k + i * j + j * k + k * i]++;
      }
    }
  }
  fr(i, 1, n + 1) { cout << count1[i] << endl; }

  // v[0]=v[n];
  // v[n+1]=v[0];
  // while(v.size()>1)
  // {
  // 	auto it = min_element(v.begin(),v.end());
  // 	if(it==v.begin())
  // 	{
  // 		*it = *(it+1) + *(v.end()-1);
  // 		v.erase(v.end());
  // 		v.erase(it+1);
  // 	}
  // 	else if(it==v.end())
  // 	{
  // 		*it = *(it-1) + *(v.begin());
  // 		v.erase(v.begin());
  // 		v.erase(it-1);
  // 		cout<<1;
  // 	}
  // 	else
  // 	{
  // 		*it = *(it-1) + *(it+1);
  // 		v.erase(it+1);
  // 		v.erase(it-1);
  // 	}

  // }
  // cout<<v[0];
}
int main() {
#ifndef ONLINE_JUDGE
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
#endif
  // int t;
  // cin>>t;
  // while(t--)
  // {
  // 	solve();
  // 	cout<<endl;
  // }
  solve();
  return 0;
}


Fixed submission:
#include <bits/stdc++.h>
using namespace std;
// #define int long long
#define ll long long
#define sz(a) (int)(a.size())
#define pb push_back
#define all(c) c.begin(), c.end()
#define tr(it, c) for (auto it = c.begin(); it != c.end(); it++)
#define fr(i, a, n) for (int i = a; i < n; i++)
#define present(c, x) (c.find(x) != c.end()) // for set/map etc.
#define cpresent(c, x) (find(all(c), x) != c.end())
typedef pair<int, int> pi;
typedef vector<int> vi;
typedef vector<vector<int>> vvi;
typedef vector<long long> vll;
typedef vector<pair<int, int>> vp;
int N = 100001;
int mod = 1e9 + 7;
int min(int a, int b) {
  if (a < b)
    return a;
  else
    return b;
}
int max(ll a, ll b) {
  if (a > b)
    return a;
  else
    return b;
}
int power(int a, int b) {
  int res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1)
      res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
int gcd(int p, int q) {
  if (p % q == 0)
    return q;
  else {
    return gcd(q, p % q);
  }
}
bool comp(int a, int b) { return (a > b); }

void solve() {
  // int n;
  // cin>>n;
  // string s;
  // cin>>s;
  // int sum=0;
  // int c1=0;
  // for(int i=n-1;i>=0;i--)
  // {
  // 	if(s[i]=='1')
  // 	{
  // 		c1++;
  // 		sum+= pow(2,n-1-i);
  // 	}
  // }
  // int ans=0;
  // int cou=c1;
  // fr(i,0,n)
  // {
  // 	if(i=='1'){ans=sum-pow(2,n-1-i);cou=c1-1;}
  // 	else {ans= sum+ pow(2,n-1-i);cou=c1+1;}
  // 	int main=0;
  // 	while(ans!=0)
  // 	{
  // 		ans= ans%c1;
  // 	}
  // }
  int n;
  cin >> n;
  vi count1(2e6, 0);
  fr(i, 1, sqrt(n) + 1) {
    fr(j, 1, sqrt(n) + 1) {
      fr(k, 1, sqrt(n) + 1) {
        count1[i * i + j * j + k * k + i * j + j * k + k * i]++;
      }
    }
  }
  fr(i, 1, n + 1) { cout << count1[i] << endl; }

  // v[0]=v[n];
  // v[n+1]=v[0];
  // while(v.size()>1)
  // {
  // 	auto it = min_element(v.begin(),v.end());
  // 	if(it==v.begin())
  // 	{
  // 		*it = *(it+1) + *(v.end()-1);
  // 		v.erase(v.end());
  // 		v.erase(it+1);
  // 	}
  // 	else if(it==v.end())
  // 	{
  // 		*it = *(it-1) + *(v.begin());
  // 		v.erase(v.begin());
  // 		v.erase(it-1);
  // 		cout<<1;
  // 	}
  // 	else
  // 	{
  // 		*it = *(it-1) + *(it+1);
  // 		v.erase(it+1);
  // 		v.erase(it-1);
  // 	}

  // }
  // cout<<v[0];
}
int main() {
#ifndef ONLINE_JUDGE
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
#endif
  // int t;
  // cin>>t;
  // while(t--)
  // {
  // 	solve();
  // 	cout<<endl;
  // }
  solve();
  return 0;
}