La sfida è trovare il numero massimo che puoi ottenere da un elenco di numeri interi usando operatori aritmetici di base (addizione, sottrazione, moltiplicazione, negazione unaria)
Ingresso
Un elenco di numeri interi
Produzione
Il massimo risultato usando ogni numero intero nell'intput.
L'ordine di input non ha importanza, il risultato dovrebbe essere lo stesso.
Non è necessario eseguire l'output dell'intera operazione, ma solo il risultato.
Esempi
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))
Regole
Il codice più corto vince
Si applicano "scappatoie" standard
È possibile utilizzare solo + * - operatori (addizione, moltiplicazione, sottrazione, negazione unaria)
Il codice dovrebbe funzionare fino a quando il risultato può essere memorizzato su un numero intero a 32 bit.
Qualsiasi comportamento di overflow dipende da te.
Spero che sia abbastanza chiaro, questo è il mio primo suggerimento per la sfida di Code Golf.