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

Задача . D. Новый год и произвольный порядок


Вам даны три целых числа k, pa и pb.

Вы будете строить последовательность в соответствии со следующим алгоритмом. Изначально у вас есть пустая последовательность. Раз в секунду вы делаете следующее. С вероятностью pa / (pa + pb) вы добавляете «a» в конец последовательности. Иначе (с вероятностью pb / (pa + pb)) вы добавляете «b» в конец последовательности.

Вы останавливаетесь, как только в вашей последовательности есть хотя бы k подпоследовательностей «ab». Определите математическое ожидание числа подпоследовательностей «ab» в итоговой строке. Можно показать, что это число может быть выражено как P / Q, где P и Q — взаимно простые целые числа, а . Выведите значение .

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

Первая строка содержит три целых числа k, pa, pb (1 ≤ k ≤ 1 000, 1 ≤ pa, pb ≤ 1 000 000).

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

Выведите одно целое число — ответ на задачу.

Примечание

В первом примере мы будем добавлять к последовательности букву, пока не получим хотя бы одну подпоследовательность «ab». Среди прочего, мы можем получить последовательность «ab» с вероятностью 1/4, «bbab» с вероятностью 1/16, и «aab» с вероятностью 1/8. Обратите внимание, невозможно получить строку «aabab», так как мы бы остановились, как только получили префикс «aab».

Математическое ожидание числа подпоследовательностей «ab» равно 2.

Во втором примере ответ равен .


Примеры
Входные данныеВыходные данные
1 1 1 1
2
2 3 1 4
370000006

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

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