Cod sursa(job #2590441)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 27 martie 2020 22:43:17
Problema Dreptunghiuri Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("dreptunghiuri.in");
ofstream fout ("dreptunghiuri.out");
int n,m,i,j,k;
double get_dist (double x, double y, double x2, double y2){
    return (x - x2) * (x - x2) + (y - y2) * (y - y2);
}
int main (){

    fin>>n>>m;

    long long sol = 0;
    for (i=1;i<n;i++)
        for (j=1;j<m;j++){

            /// fixez un punct de pe latime
            int cnt = 1;
            for (int k=1;k<i;k++){
                int b = -j;
                int c = k * i - k * k;
                int delta = b*b - 4*c;
                if (delta < 0)
                    continue;

                if (sqrt(delta) != (int)sqrt(delta))
                    continue;

                int val = sqrt(delta);
                if ( (j + val) % 2 == 0 && (j-val)/2 > 0 && (j+val)/2 < j)
                    cnt++;
                if (delta && (j - val) % 2 == 0 && (j-val)/2 > 0 && (j-val)/2 < j)
                    cnt++;
            }

            sol += 1LL * cnt * (n-i) * (m-j);

        }

    fout<<sol;

    return 0;
}