Покер має етикет щодо того, як ви влаштовуєте свої фішки, які часто застосовуються на турнірах - ваші фішки можуть не бути «прихованими» від опонентів, опинившись позаду інших, в основному, щоб не приховувати якісь чіпи численних номіналів.
Змагання
Ми будемо грати в покер в 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
чіп у своїй папці із зображеннями.)