Время

14:06:58
24 May 2012
Версия для печати

Тройной прыжок

   Тройной прыжок совершается следующим образом. Прыгун разгоняется, добегает до определенной отметки и совершает три последовательных прыжка. Победителем является тот, чья суммарная длина прыжков наибольшая.

   Вы принимаете участие в соревновании и прыгаете последним. Все Ваши соперники уже совершили прыжки, поэтому их результаты известны.

   Первый свой прыжок Вы уже совершили, его длина равна first. Длина каждого из оставшихся прыжков может с одинаковой вероятностью принимать любое значение из отрезка [lower, upper], и не обязательно быть целым. Вам необходимо вычислить вероятность того, что Вы займете i - ое место. Место, занятое Вами, равняется единице плюс количество соперников, которые прыгнули дальше Вас.


Технические условия

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

   Состоит из нескольких тестов. Первая строка каждого теста содержит значения lower, upper, first (1 ≤ lower ≤ 1000, lower upper 1000, lower first upper) и количество Ваших соперников n (1 ≤ n ≤ 50). Вторая строка теста содержит n целых чисел от 1 до 3000 - длины тройных прыжков всех Ваших соперников.

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

   Для каждого теста в отдельной строке вывести  n + 1 действительных чисел - соответственно вероятности того что Вы займете первое, второе, третье, ..., последнее место. Все вероятности следует выводить с 4 десятичными знаками.


Информация о задаче

Лимит времени: 1 секунда
Лимит памяти: 64 MB
Баллы за пройденный тест: 10
Сложность: 0% 11/11
Классификация: Теория вероятностей

Пример

Пример входных данных

1 2 1 4
1 2 3 4
1 10 5 8
1 2 3 5 10 11 12 19

Пример выходных данных

0.5000 0.5000 0.0000 0.0000 0.0000
0.2222 0.6235 0.0556 0.0432 0.0556 0.0000 0.0000 0.0000 0.0000


← Заданная вероятность Список задач Простой футбол →