Pagini recente » Cod sursa (job #1250651) | Cod sursa (job #3281157) | Cod sursa (job #3179391) | Cod sursa (job #2903278) | Cod sursa (job #2301443)
#include <fstream>
using namespace std;
const int MAXN = 400;
ifstream f("dreptunghiuri.in");
ofstream g("dreptunghiuri.out");
int nrN[MAXN * MAXN + 1], nrM[MAXN * MAXN + 1];
void calcul(int M[], int n)
{
for(int A = 1; A < n; A++)
for(int B = 1; A + B < n; B++)
M[A * B] += n - (A + B);
}
int main()
{
int n, m, maxp;
f >> n >> m;
long long nrsol = 1LL * n * (n - 1) / 2 * m * (m - 1) / 2;
calcul(nrN, n);
calcul(nrM, m);
maxp = max(n, m) / 2;
maxp *= maxp;
for(int p = 1; p <= maxp; p++)
nrsol += nrN[p] * nrM[p];
g << nrsol;
return 0;
}