Pagini recente » Cod sursa (job #1076556) | Cod sursa (job #1213606) | Cod sursa (job #1398430) | Cod sursa (job #2533462) | Cod sursa (job #1018041)
#include <stdio.h>
#include <math.h>
int solve(int H, int W) {
int res = 0;
for (int A = 1; A <= H; ++A) {
int delta = W * W - 4 * A * (H - A);
if (delta < 0)
continue;
if (delta == 0)
res += 1 - W % 2;
else {
int sq = delta;
delta = sqrt(delta);
if ((int)delta * (int)delta != sq)
continue;
if ((W - delta) % 2 == 0)
res += (1 <= (W - delta) / 2 && (W - delta) / 2 <= W);
if ((W + delta) % 2 == 0)
res += (1 <= (W + delta) / 2 && (W + delta) / 2 <= W);
}
}
return res;
}
int main() {
freopen("dreptunghiuri.in", "r", stdin);
freopen("dreptunghiuri.out", "w", stdout);
int N, M;
scanf("%d%d", &N, &M);
--N; --M;
int res = 0;
for (int h = 1; h <= N; ++h)
for (int w = 1; w <= M; ++w)
res += solve(h, w) * (N - h + 1) * (M - w + 1);
printf("%d", res);
return 0;
}