printРабочее место участника

printЗадачи

1361. Игра

Ограничения: время – 100ms/500ms, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Эми (далее A) и Бендер (B) играют в следующую азартную игру. Перед началом игры A отдает B `P`$. Затем B бросает монетку. Если выпал орел, B отдает A 1$, и игра заканчивается. Если выпала решка, то B бросает монету во второй раз. Если выпадает орел, то B отдает 2$, иначе бросает монету снова. Если орел выпадает после `N` решек, то B платит A `2^N`$ и игра заканчивается, иначе B продолжает бросать монету, но не более чем `K` раз. Если орел не выпал и после `К` подбрасываний монеты, то игра завершается и B платит A `2^K`$. Определите математическое ожидание выигрыша A. Например, для `P=3` и `K=5` математическое ожидание можно рассчитать следующим образом. Вероятность выпадения орла при первом броске равна `1/2`. При этом выигрыш равен `1-3\ =\ -2`. Если орел выпадет только при втором броске (вероятность этого события равна `1/4`), то выигрыш составит `2-3\ =\ -1`. Аналогично для третьего броска вероятность равна `1/8`, а выигрыш `4-3\ =\ 1`. Для четвертого броска вероятность равна `1/16`, а выигрыш `8-3\ =\ 5`, для пятого: `1/32` и `16-3\ =\ 13`. Вероятность, что пять раз выпадет решка, равна `1/32`, а выигрыш при этом будет равен `32-3\ =\ 29`. Перемножая вероятности и выигрыши и суммируя результаты, получаем математическое ожидание выигрыша `(-2)/2\ +\ (-1)/4\ +\ 1/8\ +\ 5/16\ +\ 13/32\ +\ 29/32\ =\ 0.50`$ (полдоллара).
Во входном файле содержится два целых числа через пробел – `P` и `K` (`1\ ≤\ P\ ≤\ 10^9`, `1\ ≤\ K\ ≤\ 10^9`).
В выходной файл вывести математическое ожидание выигрыша A с двумя десятичными знаками.

Пример ввода

3 5

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

0.50
loading