Олимпиадный тренинг

Задача . F. Nezzar и шоколадные плитки


Nezzar купил свое любимое лакомство — \(n\) шоколадных плиток с длинами \(l_1,l_2,\ldots,l_n\). Однако некоторые из них могут быть слишком длинными, чтобы правильно их хранить!

Чтобы решить эту проблему, Nezzar придумал интересный процесс разделения их на маленькие кусочки. Сначала Nezzar кладет свои шоколадные плитки в черный ящик. Затем он совершает следующую операцию, пока максимальная длина плитки превышает \(k\).

  • Nezzar выбирает случайную шоколадную плитку из ящика с вероятностью, пропроциональной ее длине \(x\).
  • После шага \(1\) Nezzar равномерно выбирает вещественное число \(r \in (0,x)\) и делит выбранную шоколадную плитку на две плитки с длинами \(r\) и \(x-r\).
  • Наконец, он кладет две новых шоколадных плитки обратно в черный ящик.

Nezzar интересуется, чему равно математическое ожидание количества операций, которое он сделает для того, чтобы разделить свои шоколадные плитки на маленькие кусочки.

Можно показать, что ответ может быть представлен как \(\frac{P}{Q}\), где \(P\) и \(Q\) — взаимно простые числа и \(Q \not \equiv 0\) (\(\bmod 998\,244\,353\)). Выведите значение \(P\cdot Q^{-1} \mod 998\,244\,353\).

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

В первой строке находится два целых числа \(n\) и \(k\) (\(1 \le n \le 50, 1 \le k \le 2000\)).

Во второй строке находится \(n\) целых чисел \(l_1, l_2, \ldots, l_n\) (\(1 \le l_i\), \(\sum_{i=1}^{n} l_i \le 2000\)).

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

Выведите единственное целое число — математическое ожидание количества операций, которое Nezzar сделает, чтобы разделить свои шоколадные плитки на маленькие кусочки, по модулю \(998\,244\,353\).


Примеры
Входные данныеВыходные данные
1 1 1
2
4
2 1 1
1
0
3 1 5
1234
15630811
4 2 1
2 3
476014684
5 10 33
10 20 30 40 50 60 70 80 90 100
675105648

time 5000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя