Pagini recente » Cod sursa (job #2964277) | Cod sursa (job #2909527) | Cod sursa (job #3219240) | Cod sursa (job #2959718) | Cod sursa (job #2491740)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("dreptunghiuri.in");
ofstream fout("dreptunghiuri.out");
long long Sol, N, M;
int Count(int l, int L)
{
int Ans = 1;
for(int A = 1; A < l; A++)
{
///C^2 - LC + A(l - A) = 0
int t = A * (l - A);
int delta = L * L - 4 * t;
if(delta == 0 && l % 2 == 0)
Ans++;
else if(delta > 0)
{
delta = sqrt(delta);
if(delta * delta == L * L - 4 * t)
{
double c1 = (L + delta) / 2, c2 = (L - delta) / 2;
if(0 < c1 && c1 < L && ((L + delta) % 2 == 0))
Ans++;
if(0 < c2 && c2 < L && ((L - delta) % 2 == 0))
Ans++;
}
}
}
return Ans;
}
int main()
{
fin >> N >> M;
N--, M--;
for(int i = 1; i <= N; i++)
for(int j = 1; j <= M; j++)
{
Sol += Count(i, j) * (N - i + 1) * (M - j + 1);
}
fout << Sol << '\n';
fin.close();
fout.close();
return 0;
}