Pagini recente » Cod sursa (job #206262) | Cod sursa (job #2853795) | Cod sursa (job #22776) | Cod sursa (job #1927242) | Cod sursa (job #1494975)
#include <cstdio>
#define maxN 405
using namespace std;
int i, j, Sqrt[maxN * maxN], p[maxN];
long long sol;
int n, m;
void read()
{
freopen("dreptunghiuri.in", "r", stdin);
scanf("%d %d", &n, &m);
}
inline long long nrr(int x, int y)
{
int i, delta;
long long ans = 1;
for (i = 1; i < x; ++ i)
{
delta = p[y] - 4 * i * (x - i);
if (delta >= 0 && delta < maxN * maxN && (Sqrt[delta] || !delta))
{
delta = Sqrt[delta];
if (delta == 0 && y % 2 == 0)
++ ans;
if (delta > 0 && (y + delta) % 2 == 0)
ans += 2;
}
}
return ans;
}
void solve()
{
-- n; -- m;
for (i = 1; i < maxN; ++ i)
Sqrt[i * i] = i,
p[i] = i * i;
for (i = 1; i <= n; ++ i)
for (j = 1; j <= m; ++ j)
sol += nrr(i, j) * (n - i + 1) * (m - j + 1) * 1LL;
}
void write()
{
freopen("dreptunghiuri.out", "w", stdout);
printf("%lld", sol);
}
int main()
{
read();
solve();
write();
return 0;
}