Le poker a une étiquette dans la façon dont vous organisez vos jetons, souvent appliquée dans les tournois - vos jetons peuvent ne pas être "cachés" à vos adversaires en étant derrière les autres, surtout pour ne pas cacher des jetons de grande dénomination.
Le défi
Nous allons jouer au poker en ASCII, donc nous avons besoin d'écrire une fonction ou d'un programme qui attirera notre arrangement de pile de jetons ASCII compte tenu de sa valeur totale, n
.
Entrée
- Un entier positif, n
(jusqu'à 2**32-1
doit être traité)
Sortie
- Une représentation ASCII de l'arrangement de pile tel que défini ci-dessous.
Cela peut contenir un espace blanc à droite de chaque ligne de sorte qu'aucune ligne ne dépasse un caractère de plus que la longueur utilisée par les caractères imprimables dans la ligne la plus longue (en bas);
Il peut contenir une seule nouvelle ligne de fin; et
Les caractères représentant les puces peuvent être en minuscules si vous préférez.
L'arrangement de pile:
- Contenir le moins de jetons possible, compte tenu des dénominations (voir ci-dessous);
- Aura des puces de valeur égale en "piles" (colonnes);
- Être ordonné de telle sorte que les piles les plus courtes soient à droite des piles plus hautes; et
- Être ordonné de telle sorte que les piles avec des jetons de dénomination plus grande soient à droite des piles de dénominations inférieures de taille égale (ce qui signifie qu'elles sont visibles par nos adversaires à droite)
Les puces elles-mêmes doivent être représentées comme des caractères individuels identifiant leur couleur:
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
Exemple
Pour n = 276,352
le plus petit nombre de puces serait:
2 * 100K + 3 * 25K + 1 * 1K + 3 * 100 + 2 * 25 + 2 * 1
MM CCC P BBB GG WW
Le single P
doit aller à l'extrême droite,
puis les trois piles de taille 2
doivent aller ensuite,
- mais le MM
doit aller le plus à droite, suivi du GG
puis, puis WW
depuis, 100K > 25 > 1
les deux piles de taille 3
vont à gauche,
- mais le CCC
must aller à droite du BBB
depuis25K > 100
Maintenant, nous devons placer ces puces dans des piles réelles, pour faire notre sortie:
BC
BCWGM
BCWGMP
Cas de test
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
C'est le code-golf , donc le code le plus court en octets l'emporte. Pas d'échappatoires, yada yada, vous connaissez l'exercice.
2**31-1
, ou avez-vous l'intention d'être plus grand que la plupart des int
types signés ?
2**32-1
c'est un cas de test, mais je suis prêt à l'abaisser. (Fait intéressant: PokerStars a une 25B
puce dans son dossier d'images.)