Pagini recente » Cod sursa (job #1914816) | Cod sursa (job #2194262) | Cod sursa (job #1157149) | Cod sursa (job #47296) | Cod sursa (job #2293999)
#include <fstream>
using namespace std;
const int MAXN = 400;
ifstream in("dreptunghiuri.in");
ofstream out("dreptunghiuri.out");
int rad[MAXN * MAXN + 1];
int N, M;
int main()
{
in >> N >> M;
for (int i = 1; i <= MAXN; ++i)
rad[i * i] = i;
long long nrsol = 0;
for (int l1 = 1; l1 < N; l1++)
for (int l2 = 1; l2 < M; l2++)
{
int nr = 1;
for (int A = 1; A < l1; A++)
{
int delta = l2 * l2 - 4 * A * (l1 - A);
if (delta == 0 && l2 % 2 == 0)
nr++;
else
if (delta > 0 && rad[delta] != 0)
{
if ((l2 + rad[delta]) % 2 == 0 && l2 - rad[delta] > 0)
nr++;
if ((l2 - rad[delta]) % 2 == 0 && l2 - rad[delta] >= 2)
nr++;
}
}
nrsol += 1LL * nr * (N - l1) * (M - l2);
}
out << nrsol;
return 0;
}