Cod sursa(job #2679991)

Utilizator stefantagaTaga Stefan stefantaga Data 2 decembrie 2020 11:00:42
Problema Dreptunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("dreptunghiuri.in");
ofstream g("dreptunghiuri.out");
int n, m, cnt;
long long ans;
int rad[160005];
int main() {
  f >> n >> m;
  for(int i = 1; i <= 160000; i++)
    rad[i] = sqrt(i);
  for(int i = 1; i < n; i++) {
    for(int j = 1; j < m; j++) {
      cnt = 1;
      for(int a = 1; a < i; a++) {
        int delta = j * j - 4 * a * (i - a);
        if(delta == 0 && j % 2 == 0)
          cnt++;
        else {
          if(delta > 0 && rad[delta] * rad[delta] == delta && (j + rad[delta]) % 2 == 0 && j > rad[delta])
            cnt += 2;
        }
      }
      ans += cnt * (n - i) * (m - j);
    }
  }
  g<< ans;
  return 0;
}