Pagini recente » Cod sursa (job #57851) | Cod sursa (job #3274532) | Cod sursa (job #3279329) | Cod sursa (job #3275829) | Cod sursa (job #2128782)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 4e2;
int rad[MAXN * MAXN + 1];
int main()
{
long long ans = 0LL;
int n, m;
ifstream fin("dreptunghiuri.in");
fin >> n >> m;
fin.close();
for (int i = 1; i <= MAXN; ++i)
rad[i * i] = i;
for (int h = 1; h < n; ++h)
for (int w = 1; w < m; ++w) {
int loc_ans = 0;
for (int lat = 1; lat <= h; ++lat) {
int delta = w * w - 4 * lat * (h - lat);
if (delta == 0 && w % 2 == 0 || delta > 0 && rad[delta] && (w + rad[delta]) % 2 == 0) {
int sol1 = (w - rad[delta]) / 2, sol2 = (w + rad[delta]) / 2;
if (sol1 > 0 && sol1 <= w || sol2 > 0 && sol2 <= w)
++loc_ans;
}
}
ans += 1LL * loc_ans * (n - h) * (m - w);
}
ofstream fout("dreptunghiuri.out");
fout << ans;
fout.close();
return 0;
}