Pagini recente » Cod sursa (job #2321450) | Cod sursa (job #464168) | Cod sursa (job #2383730) | Cod sursa (job #2774754) | Cod sursa (job #2601343)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 400;
int r[MAXN * MAXN + 5];
int solve(int h, int w, int a) {
int delta = w * w - 4 * a * (h - a);
if (delta < 0 || r[delta] == -1)
return 0;
int rad = r[delta];
if ((w + rad) % 2 != 0)
return 0;
int ans = 0;
if (0 <= (w + rad) / 2 && (w + rad) / 2 < w)
ans++;
if (0 <= (w - rad) / 2 && (w - rad) / 2 < w && rad != 0)
ans++;
return ans;
}
int main() {
freopen("dreptunghiuri.in", "r", stdin);
freopen("dreptunghiuri.out", "w", stdout);
memset(r, -1, sizeof(r));
for (int i = 0; i <= MAXN; ++i)
r[i * i] = i;
int n, m;
scanf("%d%d", &n, &m);
long long ans = 0;
for (int h = 1; h < n; ++h)
for (int w = 1; w < m; ++w)
for (int a = 0; a < h; ++a)
ans += (n - h) * (m - w) * solve(h, w, a);
printf("%lld\n", ans);
return 0;
}