Задача состоит в том, чтобы найти максимальное число, которое вы можете получить из списка целых чисел, используя основные арифметические операторы (сложение, вычитание, умножение, унарное отрицание)
вход
Список целых чисел
Выход
Максимальный результат при использовании каждого целого числа в intput.
Порядок ввода не имеет значения, результат должен быть таким же.
Вам не нужно выводить полную операцию, только результат.
Примеры
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))
правила
Самый короткий код выигрывает
Стандартные "лазейки" применяются
Вы можете использовать только операторы + * - (сложение, умножение, вычитание, унарное отрицание)
Код должен работать до тех пор, пока результат может быть сохранен в 32-битном Integer.
Любое поведение переполнения зависит от вас.
Надеюсь, это достаточно ясно, это мое первое предложение Code Golf.