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