Pagini recente » Cod sursa (job #801393) | Cod sursa (job #870785) | Cod sursa (job #253023) | Cod sursa (job #2598408) | Cod sursa (job #2295297)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("dreptunghiuri.in");
ofstream g("dreptunghiuri.out");
const int MAXN = 400;
int rad[MAXN * MAXN + 1];
int main()
{
int n, m;
f >> n >> m;
for(int i = 1; i <= MAXN; i++)
rad[i * i] = i;
long long nrSol = 0;
for(int H = 1; H < n; H++)
for(int W = 1; W < m; W++)
{
int nr = 1;
for(int A = 1; A < H; A++)
{
int delta = W * W - 4 * A * (H - A);
if(delta == 0 && W % 2 == 0)
nr++;
else
if(delta > 0 && rad[delta] != 0)
{
if((W + rad[delta]) % 2 == 0 && W - rad[delta] > 0)
nr++;
if((W - rad[delta]) % 2 == 0 && W - rad[delta] >= 2)
nr++;
}
}
nrSol += 1LL * nr * (n - H) * (m - W);
}
g << nrSol;
return 0;
}