Eqs
Description:
Consider equations having the following form:
a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0
The coefficients are given integers from the interval [-50,50].
It is consider a solution a system (x1, x2, x3, x4, x5) that verifies the equation, xi∈[-50,50], xi != 0, any i∈{1,2,3,4,5}.
Determine how many solutions satisfy the given equation.
Input:
The only line of input contains the 5 coefficients a1, a2, a3, a4, a5, separated by blanks.
Output:
The output will contain on the first line the number of the solutions for the given equation.
Sample Input:
37 29 41 43 47
Sample Output:
654
题目大意:
给出一个5元3次方程,输入其5个系数,求它的解的个数
其中系数 ai∈[-50,50] 自变量xi∈[-50,0)∪(0,50]
#include<iostream>
using namespace std;
const int maxn=25000000;
int a1,a2,a3,a4,a5;
short hash[maxn+1];
int main()
{
cin>>a1>>a2>>a3>>a4>>a5;
for(int x1=-50;x1<=50;x1++)
{
if(!x1) continue;
for(int x2=-50;x2<=50;x2++)
{
if(!x2) continue;
int num=a1*x1*x1*x1+a2*x2*x2*x2;
if(num<0)
num+=maxn;
hash[num]++;
}
}
int ans=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 num=a3*x3*x3*x3+a4*x4*x4*x4+a5*x5*x5*x5;
if(num<0)
num+=maxn;
if(hash[num])
ans+=hash[num];
}
}
}
cout<<ans;
return 0;
}