HDU:1496
这题太恶心,被后面的初始化害惨,由于是2000000的数据如果疏忽便会导致超时
#include <stdio.h>
#include <iostream>
int hash[2000001];
int main(void)
{
int a, b, c, d, x, y;
while (scanf("%d %d %d %d", &a, &b, &c, &d) != EOF)
{
if ((a > 0 && b > 0 && c > 0 && d > 0) || (a < 0 && b < 0 && c < 0 && d < 0))
{
printf("0/n");
continue;
}
int ans = 0;
memset(hash, 0, sizeof(hash));
for (x=1; x<=100; x++)
{
for (y=1; y<=100; y++)
{
hash[a * x * x + b * y * y + 1000000]++;
}
}
for (x=1; x<=100; x++)
{
for (y=1; y<=100; y++)
{
ans += hash[1000000 - (c * x * x + d * y * y)];
}
}
printf("%d/n", 16 * ans);
}
return 0;
}