Guest User

Untitled

a guest
Apr 23rd, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1. #include <iostream>
  2. #include <map>
  3.  
  4. using namespace std;
  5.  
  6. #pragma comment (linker, "/stack:32000000")
  7.  
  8. #define MAXN 32768
  9. #define MAXX 99999
  10.  
  11.  
  12.  
  13. int main()
  14. {
  15.     freopen("input.txt", "r", stdin);
  16.     freopen("output.txt", "w", stdout);
  17.  
  18.     int t, q, n, i, j, dp[100000][4] = {};
  19.  
  20.     for (i = 1; i*i <= MAXN; i++)
  21.         dp[i*i][0] = 1;
  22.  
  23.     for (i = 1; i <= MAXN; i++)
  24.         for (j = 1; i - j*j >= int(sqrt(double(i))); j++)
  25.             dp[i][1] += dp[i-j*j][0];
  26.  
  27.     for (i = 1; i <= MAXN; i++)
  28.         for (j = 1; i - j*j >= int(sqrt(double(i))); j++)
  29.             dp[i][2] += dp[i-j*j][1];
  30.            
  31.     for (i = 1; i <= MAXN; i++)
  32.         for (j = 1; i - j*j >= int(sqrt(double(i))); j++)
  33.             dp[i][3] += dp[i-j*j][2];
  34.  
  35.     cin >> t;
  36.  
  37.     for (q = 0; q < t; q++)
  38.     {
  39.         cin >> n;
  40.  
  41.         cout << dp[n][0] + dp[n][1] + dp[n][2] + dp[n][3] << endl;
  42.     }
  43.        
  44.     return 0;
  45. }
Add Comment
Please, Sign In to add comment