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

Подготовка соревнования

Подготовка соревнования

Однажды Арти попросили приготовить несколько соревнований по программированию. Так как он очень ленив, то решил немного сжульничать. Он приготовил n задач, для i-ой задачи он приготовил si условий. Теперь он хочет составить соревнования из этих задач, удовлетворяющих следующим правилам:

  • каждая задача в соревновании может быть использована только один раз;
  • соревнование должно содержать от a до b задач;
  • два соревнования считаются различными, если имеется задача которая присутствует в одном соревновании и отсутствует в другом, или если хотя бы одна задача имеет разные условия в этих соревнованиях;
  • считаются множества задач, а не их порядок следования в соревнованиях.

Вычислить, сколько различных соревнований может подготовить Арти. Поскольку это значение может быть большим, то вывести его по модулю 109 + 7.

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

Первая строка содержит числа n, a, b (1abn10000). Вторая строка содержит n целых чисел si (1si100).

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

Вывести количество различных соревнований, которое может приготовить Арти, по модулю 109 + 7.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
2 1 2
3 4
Выходные данные #1
19
Источник 2014 KBTU Open, Весна Казахстан, Алма-Ата, 20 Апреля, Задача I