У вас имеется некоторый набор из цифр от 1 до 9. Из них нужно составить арифметическое выражение. Каждую цифру можно использовать не более одного раза, а вот скобки и арифметические операции (x+x, x-x,x*x и x/x) можно использовать в любом количестве. Запрещается склеивать цифры для получения новых чисел. Вычислите максимальное возможное значение выражения, которое можно получить таким образом. Входные данные
В единственной строке ввода содержится строка из цифр от 1 до 9. Все цифры различны. Строка не может быть пустой.
Выходные данные
Выведите одно число-максимальную величину, которую можно получить, соблюдая условия выше
Объяснение:
1. а) Паша может выиграть, если S = 21, ..., 30. При меньших значениях S за один ход нельзя получить кучу, в которой больше 30 камней. Паше достаточно увеличить количество камней на 10. При S < 21 получить за один ход больше 30 камней невозможно.
1. б) Вова может выиграть первым ходом (как бы ни играл Паша), если исходно в куче будет S = 20 камней. Тогда после первого хода Паши в куче будет 21 камень или 30 камней. В обоих случаях Ваня увеличивает количество камней на 10 и выигрывает в один ход.
2. Возможные значения S: 10, 19. В этих случаях Паша, очевидно, не может выиграть первым ходом. Однако он может получить кучу из 20 камней (при S=10 он увеличивает количество камней на 10; при S=19 - добавляет 1 камень). Эта позиция разобрана в п. 1 б. В ней игрок, который будет ходить (теперь это Вова), выиграть не может, а его противник (то есть Паша) следующим ходом выиграет.
3. Возможное значение S: 18. После первого хода Паши в куче будет 19 или 28 камней. Если в куче станет 28 камней, Вова увеличит количество камней на 10 и вы играет своим первым ходом. Ситуация, когда в куче 19 камней, разобрана в п. 2. В этой ситуации игрок, который будет ходить (теперь это Вова), выигрывает своим вторым ходом.
В таблице изображено дерево возможных партий при описанной стратегии Вовы. Заключительные позиции (в них выигрывает Вова) подчёркнуты. На рисунке это же дерево изображено в графическом виде (оба изображения дерева допустимы).
Не знаю, как с алгоритмом, а находить остатки деления на 3, 4, 8 можно по признакам делимости.
1) n mod 3
Число делится на 3, если сумма его цифр кратна трем.
Пусть дано число 373412. Его сумма цифр 3+7+3+4+1+2 = 20. 20 на 3 не делится, но делится 18 (ближайшее меньшее). Разница 2 - это и есть нужный ответ. 373412 мод 3 = 2
2) n mod 4
Число делится на 4, если две его последние цифры нули или делятся на 4. Пусть дано число 37535627345. Его две последние цифры 45. 45 на 4 не делится, но делится 44. Разница 1. Это и есть ответ. 37535627345 mod 4 = 1
3) n mod 8
Самый сложный вариант. 8 = 4х2. Как и для случая получения остатка по mod 4 получаем остаток по двум последним цифрам. Далее, если третья справа цифра нечетная, добавляем к результату 4.
45684373 mod 8. Для числа 73 находим остаток от деления на 4. На 4 делится 72, так что остаток тут 1. Перед 73 стоит нечетная цифра 3, поэтому добавляем 4, итого 1+4=5. 45684373 mod 8 = 5.
878746345242 mod 8. 42 mod 4 =2 (уже не буду подробно писать). Перед 42 стоит 2 - четное число. Результат не меняем. 878746345242 mod 8 = 2.
Так что ничего волшебного.