Cod sursa(job #2917275)

Utilizator toma_ariciuAriciu Toma toma_ariciu Data 4 august 2022 09:34:51
Problema Dreptunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
/// Preset de infoarena
#include <fstream>

using namespace std;

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

int n, m, rad[400 * 400 + 5];
long long ans;

int main()
{
    fin >> n >> m;
    for(int i = 1; i <= 400; i++)
        rad[i * i] = i;
    for(int i = 1; i < n; i++)
    {
        for(int j = 1; j < m; j++)
        {
            int cnt = 1;
            for(int x = 1; x < i; x++)
            {
                int delta = j * j - 4 * x * (i - x);
                if(delta == 0 && j % 2 == 0)
                    cnt++;
                if(delta > 0 && rad[delta] != 0 && (j + rad[delta]) % 2 == 0 && j > rad[delta])
                    cnt += 2;
            }
            ans += cnt * (n - i) * (m - j);
        }
    }
    fout << ans;
    return 0;
}