Pagini recente » Cod sursa (job #1679345) | Cod sursa (job #1917251) | Cod sursa (job #120142) | Cod sursa (job #638807) | Cod sursa (job #1506837)
#include <fstream>
#define DIM 402
#include <cmath>
using namespace std;
ifstream fin("dreptunghiuri.in");
ofstream fout("dreptunghiuri.out");
double rd;
int n, m, i, j, L, C, rad, H, delta, x;
long long sol;
int D[DIM][DIM];
int p[DIM*DIM];
int main () {
fin>>n>>m;
n--;
m--;
for (i=0;i<DIM;i++)
p[i*i] = i;
for (L=1;L<=n;L++)
for (C=1;C<=m;C++) {
for (H=1; H<L; H++) {
delta = C*C - 4 * L*H + 4 * H*H;
if (delta < 0)
continue;
// rd = sqrt(delta);
if (p[delta]*p[delta] != delta) {
continue;
}
rad = p[delta];
/*
if (rd != (int)rd)
continue;
rad = (int)rd;
*/
if (rad == 0) {
if (C % 2 == 0) {
if (C/2 >= 1 && C/2 <C)
D[L][C]++;
}
} else {
if ((C - rad) % 2 == 0) {
x = (C-rad)/2;
if (x >= 1 && x < C)
D[L][C]++;
}
if ((C + rad) % 2 == 0) {
x = (C+rad)/2;
if (x >= 1 && x < C)
D[L][C]++;
}
}
}
D[L][C] ++;
}
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
sol+=1LL*D[i][j]*(n-i+1)*(m-j+1);
fout<<sol;
return 0;
}