Ограничения: время – 1s/2s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Компьютеры для обмена информацией соединялись в сети, которые со временем превратились в глобальную сеть
Интернет. Первая многопользовательская игра, основанная на идеях D&D, появилась в 1977 году. В D&D результаты
хода игрока определяются с помощью броска игральной кости, у которой может быть разное количество граней. В MMORPG, в
которую играет Петя, также используется подобная система, и информация о силе атаки оружия указывается в
формате `x`d`y`+`z` или `x`d`y`-`z`. Данная формула означает, что сила атаки определяется как сумма очков, полученная
в результате `x` бросков кости с `y` гранями (пронумерованными от 1 до `y`), увеличенная или уменьшенная на `z`.
Если получившаяся сила атаки превосходит уровень защиты монстра, то монстр получает урон равный силе атаки.
Если сила атаки меньше или равна уровню защиты, то урон уменьшается в два раза. Монстр также атакует игрока, поэтому
важно убить монстра наименьшим количеством ударов.
Петя не очень силен в математике и теории вероятностей, поэтому он не может оценить, какое оружие лучше – 3d4+0
или 1d12-1. Напишите программу, которая вычисляет среднюю величину урона, наносимого каждым видом оружия
при атаке монстров, уровень защиты которых является целым числом, распределенным равномерно в диапазоне от `A` до `B`.
Первая строка ввода содержит три целых числа — количество видов оружия `N` (`1\ ≤\ N\ ≤\ 2000`) и диапазон
уровней защиты монстров (`1\ ≤\ A\ ≤\ B\ ≤\ 1000`). Далее следует `N` строк с информацией об оружии в
формате `x`d`y`+`z` или `x`d`y`-`z` (`1\ ≤\ x\ ≤\ 50`, `2\ ≤\ y\ ≤\ 20`, `0\ ≤\ z\ ≤\ 1000`, но
в формате `x`d`y`-`z` значение `z` не превышает `x`, т.е. сила атаки всегда неотрицательная величина).
Вывести `N` чисел, каждое на отдельной строке — среднюю величину урона
для каждого вида оружия с точностью `10^{-3}`.
Пример ввода
2 5 8
3d4+0
1d12-1
Пример вывода
6.281
4.458