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

Космический покер 3

Космический покер 3

Космический покер. Легендарная игра, первая версия которой появилась ещё в далёком 1284 году Чужой эры. До сих пор её правила известны лишь узкому кругу профессиональных игроков. Однако Вам повезло --- разработчики первой в мире программы, играющей в космический покер, обратились к Вам за помощью. В космический покер играют \textbf{N} инопланетян. В начале раунда каждому из игроков раздают по \textbf{M} карт (назовём их \textit{личными}). Личные карты игрока неизвестны его соперникам. Затем на стол по очереди выкладываются \textbf{K} \textit{общих карт}. Общие карты кладут рубашкой вниз, поэтому они видны всем игрокам. Рука игрока состоит из его личных и общих карт --- итого \textbf{M+K} карт. Мастей нет, карты различаются лишь достоинством. Всего есть \textbf{13} различных достоинств: "\textbf{2}", "\textbf{3}", "\textbf{4}", …, "\textbf{9}", "\textbf{T}", "\textbf{J}", "\textbf{Q}", "\textbf{K}" и "\textbf{A}". Играют бесконечной колодой, в которой вероятность того, что очередная карта будет иметь заданное достоинство, равна \textbf{1/13}. Комбинации в космическом покере имеют вид (\textbf{v_1}, …, \textbf{v_L}), где \textbf{L} --- количество различных достоинств в комбинации. Рука игрока удовлетворяет комбинации (\textbf{v_1}, …, \textbf{v_L}), если содержит \textbf{v_1} карт первого достоинства, \textbf{v_2} карт второго достоинства, …, \textbf{v_L} карт \textbf{L}-го достоинства. Например, комбинации (\textbf{2}, \textbf{2}) удовлетворяют руки "\textbf{2JA2A}" и "\textbf{22233}". Комбинации (\textbf{2}, \textbf{3}) удовлетворяет рука "\textbf{KQKQKQ}", но не удовлетворяет рука "\textbf{AAAAAA}". Все комбинации имеют различную стоимость. В раунде побеждает игрок, рука которого содержит комбинацию наибольшей стоимости среди всех комбинаций на руках всех игроков. Если таких игроков несколько, объявляется ничья. Зная личные карты первого игрока и частично открытые общие карты, посчитайте вероятность того, что этот игрок окажется единоличным победителем раунда. \InputFile В первой строке через пробел записаны числа \textbf{N}, \textbf{M} и \textbf{K} (\textbf{2} ≤ \textbf{N}, \textbf{M} ≤ \textbf{10}, \textbf{1} ≤ \textbf{K} ≤ \textbf{5}). Во второй строке записаны \textbf{M}символов --- личные карты первого игрока. В третьей строке записано не более \textbf{K} символов --- открытые общие карты. В четвёртой строке записано число \textbf{C} --- количество существующих в космическом покере комбинаций (\textbf{1} ≤ \textbf{C}≤ \textbf{100}). Далее в \textbf{C} строках перечислены комбинации в порядке возрастания стоимости. Каждая из них имеет вид \textbf{L} \textbf{v_1v_2} … \textbf{v_L}. Числа \textbf{L} и \textbf{v_i} положительны, сумма всех \textbf{v_i} не превышает \textbf{M+K}. \OutputFile Выведите вероятность победы первого игрока с точностью не менее \textbf{10^\{−5\}}.
Лимит времени 3 секунды
Лимит использования памяти 64 MiB
Входные данные #1
2 5 2
23456

1
1 2
Выходные данные #1
0.0883526857
Автор Алексей Самсонов
Источник Ural SU Contest. Petrozavodsk Summer Session, August 2008