У покера есть этикет в том, как вы расставляете свои фишки, часто применяемые в турнирах - ваши фишки не могут быть «спрятаны» от ваших оппонентов, будучи позади других, в основном, чтобы не прятать некоторые крупные фишки.
Соревнование
Мы собираемся играть в покер в ASCII, поэтому нам нужно написать функцию или программу, которая будет рисовать нашу схему стека ASCII, учитывая ее общее значение n
.
Ввод
- положительное целое число n
( 2**32-1
должно обрабатываться до)
Вывод
- ASCII-представление стекового устройства, как определено ниже.
Это может содержать пробел справа от каждой строки, так что ни одна строка не может быть длиннее на один символ больше, чем длина, используемая печатаемыми символами в самой длинной (нижней) строке;
Это может содержать одну завершающую новую строку; и
символы, представляющие фишки, могут быть в нижнем регистре, если вы предпочитаете.
Расположение стека будет:
- Содержать как можно меньше фишек, учитывая номиналы (см. Ниже);
- Будет иметь одинаковые фишки в «стопках» (столбцах);
- Заказывайте так, чтобы короткие стопки находились справа от более высоких стопок; и
- Заказывайте так, чтобы стеки с более крупными фишками были справа от одинаковых по размеру стеков более низких номиналов (что означает, что они видны нашему оппоненту (ам) справа)
Сами фишки должны быть представлены в виде отдельных символов, обозначающих их цвет:
White : 1 = W
Red : 5 = R
Green : 25 = G
Black : 100 = B
Yellow : 500 = Y
Pink : 1K = P
Orange : 5K = O
Cyan : 25K = C
Magenta : 100K = M
Aqua-blue : 500K = A
Lavender : 1M = L
Indigo : 5M = I
Turquoise : 25M = T
Violet : 100M = V
Silver : 500M = S
пример
Для n = 276,352
наименьшего количества фишек будет:
2 * 100K + 3 * 25K + 1 * 1K + 3 * 100 + 2 * 25 + 2 * 1
MM CCC P BBB GG WW
Сингл P
должен идти в крайнем правом положении,
затем 2
должны идти три стека по размеру ,
- но MM
должны идти дальше вправо, затем следуют GG
и затем с WW
тех 100K > 25 > 1
пор два стека по размеру 3
идут слева,
- но CCC
должны перейти к справа от BBB
момента25K > 100
Теперь мы должны поместить эти чипы в реальные стеки, чтобы сделать наш вывод:
BC
BCWGM
BCWGMP
Тестовые случаи
Input:
1
Output:
W
Input:
9378278
Output:
L
LWGPCM
LWGPCMB
LWGPCMBI
Input:
22222222
Output:
ROI
ROI
ROIWBPML
ROIWBPML
Input:
1342185143
Output:
WRCIV
WRCIVOLS
WRCIVOLSGBMT
Input:
2147483647
Output:
RMIS
RMISPC
RMISPCWL
RMISPCWLGBYOTV
Input:
4294967295
Output:
S
S
S
S
SRML
SRMLGOIT
SRMLGOITBPCV
SRMLGOITBPCVA
Это код-гольф , поэтому выигрывает самый короткий код в байтах. Никаких лазеек, Яда Яда, ты знаешь тренировку.
2**31-1
имели в виду , или вы намерены быть больше, чем большинство подписанных int
типов?
2**32-1
, это тестовый пример, но я готов понизить его. (Интересный факт: у PokerStars есть 25B
фишка в папке с изображениями.)