Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <map>
- using namespace std;
- #pragma comment (linker, "/stack:32000000")
- #define MAXN 32768
- #define MAXX 99999
- int main()
- {
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- int t, q, n, i, j, dp[100000][4] = {};
- for (i = 1; i*i <= MAXN; i++)
- dp[i*i][0] = 1;
- for (i = 1; i <= MAXN; i++)
- for (j = 1; i - j*j >= int(sqrt(double(i))); j++)
- dp[i][1] += dp[i-j*j][0];
- for (i = 1; i <= MAXN; i++)
- for (j = 1; i - j*j >= int(sqrt(double(i))); j++)
- dp[i][2] += dp[i-j*j][1];
- for (i = 1; i <= MAXN; i++)
- for (j = 1; i - j*j >= int(sqrt(double(i))); j++)
- dp[i][3] += dp[i-j*j][2];
- cin >> t;
- for (q = 0; q < t; q++)
- {
- cin >> n;
- cout << dp[n][0] + dp[n][1] + dp[n][2] + dp[n][3] << endl;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment