Pagini recente » Cod sursa (job #23327) | Cod sursa (job #772824) | Cod sursa (job #166729) | Cod sursa (job #489571) | Cod sursa (job #2295155)
#include <fstream>
using namespace std;
const int MAXN = 400;
ifstream in("dreptunghiuri.in");
ofstream out("dreptunghiuri.out");
int nrN[MAXN * MAXN + 1], nrM[MAXN * MAXN + 1];
int N, M;
int main()
{
in >> N >> M;
//initializam numarul cu nr de dreptunghiuri cu laturile paralele cu grila
long long nrsol = 1LL * N * (N - 1) / 2 * M * (M - 1) / 2;
for (int l1 = 1; l1 < N; l1++)
for (int l2 = 1; l1 + l2 < N; l2++)
nrN[l1 * l2] += N - l1 - l2;
for (int l1 = 1; l1 < M; l1++)
for (int l2 = 1; l1 + l2 < M; l2++)
nrM[l1 * l2] += M - l1 - l2;
for(int l = 1; nrN[l] && nrM[l]; ++l)
nrsol += nrN[l] * nrM[l];
out << nrsol;
return 0;
}