Задача номер 11. Казино «Аккордеон»

11. Казино «Аккордеон»

Мало кто знает, что роман «Казино «Рояль» Яна Флеминга написан по мотивам реальных событий. Тем более, почти никто не знает, где и как разворачивались эти действия. Но вам в руки попался обрывок шифровки, и ситуация оказалась очень интересной...

1943 год, Берлин. Престижное казино «Аккордеон», куда допускают только истинных арийцев. За покерным столом сидят Генрих Мюллер и Макс Отто фон Штирлиц и играют. Ставкой являются секретные документы. Конечно же, честный русский разведчик Максим Максимович Исаев не стал бы играть при таких крупных ставках, если бы не был абсолютно уверен в своей победе. Но, так как он уже сел за стол, то следует полагать, что у него есть пара тузов в рукаве. Мюллер тоже догадывался об этом и попросил Штирлица закатать рукава.

Благодаря хитроумной системе зеркал, Штирлицу удалось разглядеть карты Мюллера. Из пяти карт, лежащих на столе, перев?рнуто три карты. О содержимом двух остальных разведчик может только догадываться. Штирлиц может лишь оценить вероятность выигрыша и, соответственно, сделать ставку. Для более удобного расчёта в конструкторском бюро были разработаны специальные часы марки «Игельс».

Написать для них программу расчёта поручено вам.

Правила игры в покер:

Каждому игроку сдаются две карты втёмную. Затем в центр стола выкладывается прикуп из пяти карт в «светлую». Это общие для всех игроков карты. Каждый игрок может пользоваться прикупом для образования лучшей пятикарточной комбинации. Из двух карт игрока и пяти карт прикупа выбираются пять карт, составляющие лучшую комбинацию. Банк забирает игрок, оставшийся в игре к моменту открытия последней карты прикупа и имеющий лучшую пятикарточную комбинацию, составленную из своих карт и карт прикупа (в любой пропорции). Прикуп выкладывается в три этапа. Сначала выкладываются три карты, затем ещё одна карта, затем последняя карта.

Покерные комбинации:

Ниже представлены комбинации различных уровней, от самых слабых до самых сильных.

Старшая карта - Когда не собрана ни одна из перечисленных ниже комбинаций.
Одна Пара - Две карты одного достоинства.
Две Пары - Любые две карты одного достоинства вместе с двумя картами другого достоинства.
Тройка - Три карты одного достоинства.
Стрит - Пять последовательных карт. Туз может быть взят как высокая или низкая комбинация, но не одновременно высокая и низкая в одной и той же руке.
Флеш - Пять карт одной масти.
Фулл-хаус - Три карты одного достоинства вместе с двумя картами другого достоинства.
Каре - Четыре карты одного достоинства.
Стрит-флеш - Стрит из пяти карт одной масти.
Флеш-рояль - Стрит-флеш от 10 до туза.

Так как события происходят в военное время, то ведётся лишь подсчёт стоимости комбинации, стоимость карт в ней не учитывается. Так, например, если сильнейшей комбинацией Штирлица будет пара двоек, а Мюллера — пара тузов, будет объявлена ничья.

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

В первой строке входного файла находится описания двух карт Штирлица. Это две последовательности по два символа, где первый символ обозначает достоинство карты (2…9 — соответствующая цифра, 10 — T, валет — J, дама — Q, король — K, туз — A), второй символ — масть (S — пики, C — крести, H — червы, D — бубны).

Во второй строке в таком же формате задано описание карт Мюллера.

В третьей строке — описания трех «общих» карт, лежащих на столе.

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

В выходной файл необходимо вывести три вещественных числа: вероятность выигрыша, ничьей и проигрыша Штирлица соответственно. Значения должны представляться в виде десятичной дроби с точностью до 10?4.

Примеры

input.txt
2H 7S
AD AC
2C 7C AH

output.txt
0.00200 0.165657 0.832323

input.txt
AC KC
AH KH
QC JC TC

output.txt
1.000000 0.00000 0.00000


Соревнование: XI Открытая Всесибирская олимпиада по программированию имени И.В. Поттосина 2010
Источник: http://olimpic.nsu.ru


Оставьте свою оценку: Интересность: Сложность: