Descriptionios
Inputide
Outputui
Sample Inputspa
37 29 41 43 47
Sample Outputcode
654
首先將等式作一個簡單的變換: -(a1*x1^3 + a2*x2^3) = a3*x3^3+a4*x4^3+a5*x5^3 ,而後運用哈希表!
#include <iostream> #include <cstdlib> using namespace std; #define sum 25000001 short a[sum]; int main() { int a1, a2, a3, a4, a5; cin >> a1>> a2>> a3>> a4>> a5; memset(a, 0, sum); for (int x1 = -50; x1<=50; x1++) { if ( !x1 ) continue; for (int x2 = -50; x2<=50; x2++) { if ( !x2 ) continue; int sum1 = (a1*x1*x1*x1 + a2*x2*x2*x2) *(-1); if (sum1 < 0) sum1 = sum1 + 25000000; a[sum1] ++ ; } } int num = 0; for (int x3 = -50; x3<=50; x3++) { if ( !x3 ) continue; for (int x4 = -50; x4<=50; x4++) { if ( !x4 ) continue; for (int x5 = -50; x5<=50; x5++) { if ( !x5 ) continue; int sum2 = a3*x3*x3*x3 + a4*x4*x4*x4 + a5*x5*x5*x5; if (sum2 < 0) sum2 = sum2 + 25000000; if (a[sum2]) num = num + a[sum2]; } } } cout << num << endl; return 0; }