//hdu 1496 Equations(hash+暴力)
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <memory.h>
using namespace std;
const int N=1000009;
int hash1[N];//正
int hash2[N];//负
int main()
{
int temp, sum;
int a, b, c, d;
while(scanf("%d %d %d %d", &a, &b, &c, &d) == 4)
{
if(a>0 && b>0 && c>0 && d>0 || a<0 && b<0 && c<0 && d<0)
{
printf("0\n");
continue;
}
memset(hash1, 0, sizeof(hash1));
memset(hash2, 0, sizeof(hash2));
for(int i = 1; i <= 100; i++)
{
for(int j = 1; j<= 100; j++)
{
temp = a*i*i + b*j*j;
if(temp >= 0) hash1[temp]++;
else hash2[-temp]++;
}
}
sum = 0;
for(int i = 1; i <= 100; i++)
{
for(int j = 1; j<= 100; j++)
{
temp= c*i*i + d*j*j;
if(temp> 0) sum += hash2[temp];
else sum += hash1[-temp];
}
}
printf("%d\n", 16*sum);
}
return 0;
}
hdu 1496 Equations(hash+暴力)
最新推荐文章于 2018-04-13 10:36:18 发布