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

Трамваи в Барселоне

Трамваи в Барселоне

\includegraphics{https://static.e-olymp.com/content/7a/7ac24696eb098f949ceb367b86de2dd2bf13b3fc.jpg} Недавно в Барселоне трамвай включили в "эффективную" транспортную систему города. Как и ожидалось, результатом такого решения стало появление поломок, отличавшихся оригинальностью и красотой. Но не смотря на такую эстетику, мер Барселоны решил уменьшить время заторов, которые возникали в результате аварий. После скрупулезного изучения проблемы, он огласил следующую модель движения: Каждый трамвай должен проехать с начальной станции \textbf{P_0} до конечной \textbf{P_n}, посетив промежуточные станции \textbf{P_1}, ..., \textbf{P_\{n-1\}} именно в таком порядке. Для каждого \textbf{1} ≤ \textbf{i} ≤ \textbf{n}, пусть \textbf{S_i} - длина пути (секции) от \textbf{P_\{i-1\}} до \textbf{P_i}. Каждая такая секция должна быть пройдена с постоянной скоростью \textbf{v_i}, которая выбирается водителем на станции \textbf{P_\{i-1\}}. Пусть \textbf{M_i} - максимальная возможная скорость трамвая на участке \textbf{S_i}, и пусть выбранная на нем скорость равна \textbf{0} < \textbf{v_i} ≤ \textbf{M_i}. Вероятность поломки на участке \textbf{S_i} равна \textbf{v_i/M_i}. В случае аварии у трамвая включается система восстановления, на что уходит всего \textbf{10} секунд. Затем трамвай едет до \textbf{P_i}, используя дополнительный (медленный, но безопасный) двигатель, со скоростью \textbf{5} метров в секунду, и уже без поломок на \textbf{S_i}. Например, пусть длина секции равна \textbf{300} метров, а максимально возможная скорость на этом участке равна \textbf{25} метров в секунду. Если водитель выберет скорость \textbf{25} м/с, то трамвай однозначно сломается. Так как авария может произойти где угодно между \textbf{P_\{i-1\}} и \textbf{P_i}, то для удобства будем считать что она произойдет как раз в середине пути (после \textbf{150} метров). Таким образом, трамвай проедет \textbf{6} секунд до середины пути, \textbf{10} секунд постоит пока будет включаться дополнительный двигатель после поломки, и за \textbf{30} секунд он достигнет \textbf{P_i}, всего таким образом потратив на путь \textbf{46} секунд. Если начальная скорость трамвая будет \textbf{15} м/с, то с вероятностью \textbf{0.6} он сломается и доедет за \textbf{10 + 10 + 30 = 50} секунд, и с вероятностью \textbf{0.4} достигнет \textbf{P_i} через \textbf{20} секунд без поломки. Среднее время проезда в этом случае составит \textbf{0.6·50 + 0.4·20 = 38} секунд. Когда трамвай достигает \textbf{P_i}, он останавливается на несколько секунд независимо от того была авария на \textbf{S_i} или нет; этих нескольких секунд (для простоты вычислений будем считать их равными \textbf{0}) достаточно чтобы полностью отремонтировать трамвай: максимальная возможная скорость уменьшается на \textbf{1} м/с после каждой поломки. Если начальная возможная максимальная скорость равна \textbf{M_0}, то \textbf{M_i = M_0 - C_i}, где \textbf{0} ≤ \textbf{C_i} ≤ \textbf{i-1} общее количество аварий на участках \textbf{S_1}, ..., \textbf{S_\{i-1\}}. Напишите программу, которая выведет наименьшее среднее время путешествия, если известна начальная максимальная допустимая скорость движения трамвая и длина каждой секции. \InputFile Каждая строка соответствует одному тесту и содержит начальную максимально возможную скорость трамвая \textbf{M_0} (действительное число между \textbf{5} и \textbf{25}), значение \textbf{n} (целое число между \textbf{1} и \textbf{M_0} - \textbf{1}), и длины всех секций (действительное число от \textbf{100} до \textbf{1000}). \OutputFile Для каждого теста в отдельной строке вывести минимальное среднее время, за которое трамвай преодолеет весь путь. Ответ следует выводить с четырьмя десятичными знаками.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
25 1 900
25 2 900 900
25 2 305.15 980.76
5 1 1000
Выходные данные #1
102.0000
205.0303
150.0000
210.0000