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)