O desafio é encontrar o número máximo que você pode obter de uma lista de números inteiros usando operadores aritméticos básicos (adição, subtração, multiplicação, negação unária)
Entrada
Uma lista de números inteiros
Resultado
O resultado máximo usando todos os números inteiros na entrada.
A ordem de entrada não importa, o resultado deve ser o mesmo.
Você não precisa produzir a operação completa, apenas o resultado.
Exemplos
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))
Regras
O código mais curto vence
Aplicam-se "brechas" padrão
Você pode usar apenas operadores + * (adição, multiplicação, subtração, negação unária)
O código deve funcionar desde que o resultado possa ser armazenado em um número inteiro de 32 bits.
Qualquer comportamento de estouro depende de você.
Espero que isso esteja claro o suficiente, esta é minha primeira sugestão de desafio do Code Golf.