| 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
 
 
 |