On nous donne une liste d'entiers p1, ..., pk (pas nécessairement distincts) où chacun a une valeur comprise entre 1 et 9 inclus. En utilisant chacun des p1, ..., pk exactement une fois, nous pouvons former des concaténations de chiffres, pour obtenir une nouvelle liste de nombres; nous sortons ensuite le produit de cette nouvelle liste. L'objectif est de maximiser ce produit en choisissant les meilleures concaténations de chiffres.
Par exemple, on nous donne la liste: 2 3 2 (séparés par des espaces). Nous pouvons former les enchaînements suivants:
2 3 2
(le produit de ces concaténations est12
)23 2
(le produit est46
)32 2
(le produit est64
)22 3
(le produit est66
)
Puisque le plus grand produit que nous pouvons former des concaténations est 66, nous le sortons.
Règles:
- Il doit y avoir au moins une multiplication (c'est-à-dire que vous ne pouvez pas simplement concaténer tous les chiffres et les afficher).
- Vous ne pouvez pas utiliser d'autres opérateurs que la multiplication, ni insérer des parenthèses, etc.
- Supposons que la liste des entiers donnée est séparée par des espaces et que tous les entiers ont des valeurs comprises entre 1 et 9.
Le code le plus court (en octets) gagne!
Cas de test:
Entrée: 1 2 3
; Sortie: 63
(c.-à-d. 21*3
)
Entrée: 2 5 9
; Sortie: 468
( 52*9
)
Entrée: 1 2 3 4
; Sortie: 1312
( 41*32
)