Pagini recente » Cod sursa (job #467603) | Cod sursa (job #246282) | Cod sursa (job #991125) | Cod sursa (job #597437) | Cod sursa (job #3234230)
#include <iostream>
#include <fstream>
#define nl '\n'
using namespace std;
ifstream fin("dreptunghiuri.in");
ofstream fout("dreptunghiuri.out");
const int NMAX = 401;
int n, m, rad[NMAX*NMAX];
long long int ans;
int main()
{
for (int i = 0; i <= 400; i++)
rad[i*i] = i;
fin >> n >> m;
for (int i = 1; i < n; i++)
{
for (int j = 1; j < m; j++)
{
int cnt = 1;
for (int k = 1; k < i; k++)
{
int delta = j*j-4*k*(i-k);
if (delta < 0)
continue;
if (delta == 0 && (j&1) == 0)
{
cnt++;
continue;
}
delta = rad[delta];
if (delta == 0)
continue;
if ( ((j+delta)&1) == 0 )
cnt++;
if ( ((j-delta)&1) == 0 )
cnt++;
}
ans += cnt*(n-i)*(m-j);
}
}
fout << ans;
return 0;
}