El desafío es encontrar el número máximo que puede obtener de una lista de enteros utilizando operadores aritméticos básicos (suma, resta, multiplicación, negación unaria)
Entrada
Una lista de enteros
Salida
El resultado máximo con cada número entero en la entrada.
El orden de entrada no importa, el resultado debe ser el mismo.
No necesita generar la operación completa, solo el resultado.
Ejemplos
Input : 3 0 1
Output : 4 (3 + 1 + 0)
Input : 3 1 1 2 2
Output : 27 ((2+1)*(2+1)*3))
Input : -1 5 0 6
Output : 36 (6 * (5 - (-1)) +0)
Input : -10 -10 -10
Output : 1000 -((-10) * (-10) * (-10))
Input : 1 1 1 1 1
Output : 6 ((1+1+1)*(1+1))
Reglas
El código más corto gana
Se aplican "lagunas" estándar
Solo puede usar operadores + * - (suma, multiplicación, sustracción, negación unaria)
El código debería funcionar siempre que el resultado se pueda almacenar en un entero de 32 bits.
Cualquier comportamiento de desbordamiento depende de usted.
Espero que esto sea suficientemente claro, esta es mi primera sugerencia de desafío de Code Golf.