Cod sursa(job #912193)

Utilizator toranagahVlad Badelita toranagah Data 12 martie 2013 10:12:02
Problema Dreptunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;

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

int N, M;
long long answer = 0;
int gcd(int a, int b);

int main() {
  fin >> N >> M;
  for (int a = 1; a < N; ++a) {
    for (int b = 0; b < M; ++b) {
      for (int i = 1; a * i < N; ++i) {
        for (int j = 1; a * i + b * j < N && b * i + a * j < M; ++j) {
          if (gcd(i, j) == 1) {
            answer += 1LL * (N - (a * i + b * j)) * (M - (b * i + a * j));
          }
        }
      }
    }
  }
  fout << answer;
  return 0;
}

inline int gcd(int a, int b) {
  return (b ? gcd(b, a % b) : a);
}