• Source
    1. #include <iostream>
    2. #include <vector>
    3. #include <cmath>
    4. using namespace std;
    5. const int N=3000;
    6. int main()
    7. {
    8. vector<long long > ans(N+100,-1);
    9. for(int i=1;i<=N;++i)
    10. for(int j=1;j<=N;++j)
    11. {
    12. int c=i*i+j*j;
    13. double sq=sqrt( static_cast<double>(c));
    14. if(ceil(sq)==static_cast<int>(sq) )
    15. {
    16. int k=static_cast<int>(sq);
    17. if(i+j+k<=N)
    18. ans[i+j+k]=max(ans[i+j+k],static_cast<long long>(i*j*k));
    19. }
    20. }
    21. int t;
    22. cin>>t;
    23. for(int k=1;k<=t;++k)
    24. {
    25. int n;
    26. cin>>n;
    27. cout<<ans[n]<<endl;
    28. }
    29. }