Cod sursa(job #2302458)

Utilizator rares9301Sarmasag Rares rares9301 Data 14 decembrie 2018 17:48:38
Problema Dreptunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb

#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;

}