Se nos da una lista de enteros p1, ..., pk (no necesariamente distintos) donde cada uno tiene un valor entre 1 y 9, inclusive. Usando cada uno de los p1, ..., pk exactamente una vez, podemos formar concatenaciones de dígitos, para lograr una nueva lista de números; Luego sacamos el producto de esta nueva lista. El objetivo es maximizar este producto eligiendo las mejores concatenaciones de dígitos.
Por ejemplo, se nos da la lista: 2 3 2 (separados por espacios). Podemos formar las siguientes concatenaciones:
2 3 2
(producto de estas concatenaciones es12
)23 2
(producto es46
)32 2
(producto es64
)22 3
(producto es66
)
Dado que el producto más grande que podemos formar de concatenaciones es 66, lo sacamos.
Reglas:
- Debe haber al menos una multiplicación (es decir, no puede concatenar todos los dígitos y generarlos).
- No puede usar ningún otro operador que no sea la multiplicación, o insertar paréntesis, etc.
- Suponga que la lista de enteros dada está separada por espacios, y todos los enteros tienen valores entre 1 y 9.
¡El código más corto (en bytes) gana!
Casos de prueba:
Entrada 1 2 3
:; Salida: 63
(es decir, 21*3
)
Entrada 2 5 9
:; Salida: 468
( 52*9
)
Entrada 1 2 3 4
:; Salida: 1312
( 41*32
)