Cod sursa(job #936558)

Utilizator mihai995mihai995 mihai995 Data 7 aprilie 2013 18:30:53
Problema Dreptunghiuri Scor 40
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.71 kb
#include <fstream>
using namespace std;

ifstream in("dreptunghiuri.in");
ofstream out("dreptunghiuri.out");

inline long long cmmdc(long long x, long long y){
    return y ? cmmdc(y, x % y) : x;
}

int main(){
    long long n, m;

    in >> n >> m;

    long long rez = n * (n - 1) * m * (m - 1) / 4;

    for (long long x = 1 ; x <= n ; x++)
        for (long long y = 1 ; y <= m ; y++)
            if (cmmdc(x , y) == 1)
                for (long long a = 1 ; a * x <= n && a * y <= m ; a++)
                    for (long long b = 1 ; a * x + b * y <= n && a * y + b * x <= m ; b++)
                        rez += (n - a * x - b * y) * (n - a * y - b * x);

    out << rez << "\n";

    return 0;
}