Задача №114530. Планировка участка

Учёные планируют участок для испытательного полигона. Участок должен иметь форму прямоугольника \(a \times b\), а полигон должен иметь форму прямоугольника \(c \times d\). С точными значениями чисел \(a\), \(b\), \(c\) и \(d\) ученые пока не определились, однако известно следующее:

  • Длины сторон \(a\), \(b\), \(c\), \(d\) должны быть натуральными числами и выражаться в километрах.
  • Для безопасности эксперимента длина и ширина участка должны отличаться от значения \(x\), то есть должны выполняться неравенства \(a \ne x\), \(b \ne x\).
  • Участок будет огражден забором, а полигон должен полностью помещаться внутри участка, то есть должны выполняться следующие условия: \(a \gt c\), \(b \gt d\).
  • Площадь участка, не занятого полигоном, должна быть ровно \(n\) квадратных километров, то есть должно выполняться следующее условие: \(a \cdot b - c \cdot d = n\).
Учёные хотят понять, сколько у них способов выбрать подходящие значения \(a\), \(b\), \(c\) и \(d\).

Требуется написать программу, которая по заданным \(n\) и \(x\) определяет количество способов выбрать числа \(a\), \(b\), \(c\) и \(d\) так, чтобы все описанные условия выполнялись.

Входные данные

В первой строке ввода содержатся два числа: \(n\) — площадь свободного участка без полигона (\(1 \le n \le 3000\)) и \(x\) — запрещенная длина стороны участка (\(0 \le x \le 3000\)).

Значение \(x = 0\) означает, что ограничений на длины сторон нет (так как длины сторон должны быть натуральными числами, и, следовательно, больше \(0\)).

Выходные данные

В единственной строке выведите количество способов выбрать числа \(a\), \(b\), \(c\) и \(d\) так, что все описанные условия выполняются.

Система оценки

Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.

Подзадача Баллы Ограничения Необходимые подзадачи Информация о проверке
1 11 \(1 \le n \le 50\), \(x = 0\) первая ошибка
2 10 \(1 \le n \le 50\) 1 первая ошибка
3 20 \(1 \le n \le 500\), \(x = 0\) 1 баллы
4 22 \(1 \le n \le 500\) 1, 2, 3 баллы
5 17 \(1 \le n \le 3000\), \(x = 0\) 1, 3 баллы
6 20 \(1 \le n \le 3000\) 1, 2, 3, 4, 5 баллы

Примечание

В первом тестовом примере подходят только \(a = 2\), \(b = 2\), \(c = 1\), \(d = 1\).

Во втором тестовом примере подходят следующие ответы:

  • \(a = 2\), \(b = 3\), \(c = 1\), \(d = 1\);
  • \(a = 2\), \(b = 4\), \(c = 1\), \(d = 3\);
  • \(a = 3\), \(b = 2\), \(c = 1\), \(d = 1\);
  • \(a = 3\), \(b = 3\), \(c = 2\), \(d = 2\);
  • \(a = 4\), \(b = 2\), \(c = 3\), \(d = 1\).

В третьем тестовом примере подходят следующие ответы:

  • \(a = 2\), \(b = 4\), \(c = 1\), \(d = 3\);
  • \(a = 4\), \(b = 2\), \(c = 3\), \(d = 1\).
В остальных ответах из предыдущего теста либо \(a\), либо \(b\) равняется \(3\).
Примеры
Входные данные
3 0
Выходные данные
1
Входные данные
5 0
Выходные данные
5
Входные данные
5 3
Выходные данные
2
Сдать: для сдачи задач необходимо войти в систему