Poker ma etykietę w sposobie układania żetonów, często egzekwowaną w turniejach - twoje żetony nie mogą być „ukryte” przed przeciwnikami przez bycie za innymi, głównie po to, aby nie ukrywać dużych żetonów o dużych nominałach.
Wyzwanie
Będziemy grać w pokera w ASCII, więc musimy napisać funkcję lub program, który narysuje nasz układ żetonów ASCII, biorąc pod uwagę jego całkowitą wartość n
.
Dane wejściowe
- dodatnia liczba całkowita n
(maksymalnie 2**32-1
należy obsłużyć)
Dane wyjściowe
- reprezentacja ASCII układu stosu, jak zdefiniowano poniżej.
Może zawierać białą spację po prawej stronie każdego wiersza, tak że żaden wiersz nie jest dłuższy niż jeden znak więcej niż długość używana przez znaki drukowalne w najdłuższej (dolnej) linii;
Może zawierać pojedynczą końcową nową linię; i
Znaki reprezentujące żetony mogą być pisane małymi literami, jeśli wolisz.
Układ stosu:
- Zawierają jak najmniejszą liczbę żetonów, biorąc pod uwagę nominały (patrz poniżej);
- Będzie miał żetony o równej wartości w „stosach” (kolumnach);
- Zamów tak, aby krótsze stosy znajdowały się po prawej stronie wyższych stosów; i
- Ułóż je tak, aby stosy z żetonami o większych nominałach były po prawej stronie stosów o mniejszych nominałach równej wielkości (co oznacza, że są widoczne dla naszego przeciwnika (przeciwników) po prawej stronie)
Same żetony należy przedstawić jako pojedyncze znaki identyfikujące ich kolor:
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
Przykład
Dla n = 276,352
najmniejszej liczby żetonów byłoby:
2 * 100K + 3 * 25K + 1 * 1K + 3 * 100 + 2 * 25 + 2 * 1
MM CCC P BBB GG WW
Singiel P
musi iść po prawej stronie,
następnie trzy stosy wielkości 2
muszą przejść dalej,
- ale MM
musi iść najdalej w prawo, a GG
następnie, a następnie, WW
od 100K > 25 > 1
tego czasu dwa stosy wielkości 3
idą po lewej,
- ale CCC
musi idź na prawo od tego BBB
czasu25K > 100
Teraz musimy umieścić te żetony w rzeczywistych stosach, aby uzyskać nasz wynik:
BC
BCWGM
BCWGMP
Przypadki testowe
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
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach. Żadnych luk, Yada Yada, znasz wiertło.
2**31-1
, czy masz zamiar być większy niż większość podpisanych int
typów?
2**32-1
jest to przypadek testowy, ale chętnie go obniżę. (Ciekawostka: PokerStars ma 25B
chip w swoim folderze ze zdjęciami.)