Cod sursa(job #2811399)

Utilizator hhoangcpascalHa Van Hoang hhoangcpascal Data 2 decembrie 2021 10:48:31
Problema Dreptunghiuri Scor 0
Compilator cpp-64 Status done
Runda Lista lui wefgef Marime 0.95 kb
/// hhoangcpascal

#include <iostream>
#include <algorithm>
#include <cmath>
#define llong long long

using namespace std;

int m, n;

int main() {
    ios_base::sync_with_stdio(0); cin.tie(NULL);

    cin >> m >> n; --m, --n;
    llong ans = 1LL * m * (m + 1) * n * (n + 1) / 4;

    for(int h = 2; h <= m; ++h) {
        llong add = 0;

        for(int w = 2; w <= n; ++w)
        for(int a = 1; a <= h / 2; ++a) {
            int C = a * (h - a);
            int delta = w * w - 4 * C;

            if (delta < 0) continue;
            if (delta == 0) {
                add += m - w + 1;
                if (a != h - a)
                    add += m - w + 1;
            } else {
                int s = sqrt(delta);
                if (s * s < delta) continue;

                if ((w + s) % 2 == 0) add += 2 * (m - w + 1);
            }
        }

        ans += add * (n - h + 1);
    }

    cout << ans;

    return 0;
}