Description
Consider equations having the following form: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
Source
Romania OI 2002裸的暴力題,比賽的時候開了5個循環,看時間限制在5秒,以為呀,結果本地都跑不過來。
第一次用short的說。
#include#include #include #include #include typedef long long LL; using namespace std; short hash[25000001]; int a1,a2,a3,a4,a5; int main() { while(~scanf("%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5)) { int ans=0; memset(hash,0,sizeof(hash)); for(int x1=-50;x1<=50;x1++) { if(x1==0) continue; for(int x2=-50;x2<=50;x2++) { if(x2==0) continue; int s=(-1)*(a1*x1*x1*x1+a2*x2*x2*x2); if(s<0) s+=25000000; hash[s]++; } } for(int x1=-50;x1<=50;x1++) { if(x1==0) continue; for(int x2=-50;x2<=50;x2++) { if(x2==0) continue; for(int x3=-50;x3<=50;x3++) { if(x3==0) continue; int s=a3*x1*x1*x1+a4*x2*x2*x2+a5*x3*x3*x3; if(s<0) s+=25000000; if(hash[s]) ans+=hash[s]; } } } printf("%d\n",ans); } return 0; }