eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Артем против Мансура

Артем против Мансура

У Артема была последовательность x из n (1n100) чисел, для которой выполнялось следующее свойство 1Lx1x2 ≤ ... ≤ xnR109, а наименьшее общее кратное этих чисел делилось на a (1a109). Но пришел Мансур и украл последовательность x. Артем очень расстроился, ведь он не помнит значения чисел своей последовательности. Он помнит только числа n, L, R и a. Он хочет восстановить последовательность. Для этого он решил сначала посчитать, а сколько вообще существует последовательностей, с такими же n, L, R и a. Помогите ему - напишите программу для решения этой задачи.

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

Единственная строка содержит четыре целых положительных числа, разделенных пробелами: n, L, R, a.

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

Выведите единственное число, ответ на задачу. Так как ответ может быть очень большим, выведите его остаток от деления на 109 + 7.

Пояснение

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

{1, 6}, {2, 3}, {2, 6},

{3, 4}, {3, 6}, {4, 6},

{5, 6}, {6, 6}, {6, 7}

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
2 1 7 6
Вихідні дані #1
9
Вхідні дані #2
1 1 50 7
Вихідні дані #2
7
Джерело 2015 Казахстан, 4-й этап Республиканской олимпиады по информатике, Уральск, 13-18 марта, Задача D