Экстремальная проблема
Многие задачи, представленные на соревнованиях по программированию, имеют экстремальный характер. Вот несколько примеров:
задача, решаемая путем выполнения сложных математических расчетов на бумаге, после чего требуется вывести одно известное число, округленное до указанного во входных данных количества знаков;
задача, занимающая более четырех страниц, требующая создания системы моделирования, которая отслеживает множество навыков секретных агентов и выбирает лучшую комбинацию для каждой миссии;
задача, для которой доказано, что правильного решения не существует, но она все равно была представлена на соревновании.
В этот раз вам предстоит решить задачу, которая также является экстремальной, так как имеет всего восемь возможных тестов. И, конечно, она будет касаться чего-то экстремального.
Мы рассматриваем функции двух целочисленных переменных, определенные на квадрате . Это означает, что вы можете вызвать только если и являются целыми числами и . Функция имеет локальный минимум в точке , если выполняются следующие условия:
;
;
;
.
Локальный максимум определяется аналогично, только неравенства обращены. Функция имеет плато в точке , если выполняется хотя бы одно из следующих условий:
;
;
;
.
Обратите внимание, что все вызовы функции должны происходить в точках из области определения функции, то есть на квадрате . В частности, это означает, что точка на границе этого квадрата не может быть локальным максимумом или локальным минимумом, но все же может быть плато.
Вам нужно найти функцию, которая имеет — или не имеет, в зависимости от информации во входных данных:
несколько локальных максимумов;
несколько локальных минимумов;
некоторые плато.
Обратите внимание, что «несколько» означает «как минимум два». Также обратите внимание, что ваша функция должна быть определена определенным образом; см. раздел Выходные данные для деталей.
Входные данные
Входные данные состоят из трех строк.
Первая строка начинается с «
Multiple local maxima:
» и заканчивается либо «Yes
», либо «No
». Это указывает, должна ли ваша функция иметь несколько локальных максимумов.Вторая строка начинается с «
Multiple local minima:
» и заканчивается либо «Yes
», либо «No
», и аналогично касается локальных минимумов.Третья строка начинается с «
Plateaus:
» и также заканчивается либо «Yes
», либо «No
». Это указывает, должна ли ваша функция иметь плато.
Выходные данные
Выходные данные должны состоять из одной строки, определяющей вашу функцию.
Если такая функция не может быть представлена в формате ниже, выведите «No solution
».
В противном случае выведите вашу функцию, используя обратную польскую нотацию. Напомним, что обратная польская нотация — это способ описания функции с использованием некоего рода стековой машины: это последовательность операций, некоторые из которых помещают значения в стек, в то время как другие извлекают несколько значений с вершины стека, выполняют некоторые математические операции и помещают результат обратно в стек.
Ваша функция должна содержать не более 1000 токенов, разделенных одиночными пробелами, где каждый токен является одним из следующих.
Целочисленная константа в диапазоне от
-9
до+9
. Это поместит соответствующее число в стек.Переменная, либо
x
, либоy
. Это поместит значение этой переменной в стек.Операция, которая может быть
+
,-
,*
, или^
. Звездочка означает умножение, тогда как символ^
означает возведение в степень. Каждая из этих операций возьмет два числа из стека, применит операцию и поместит результат обратно в стек. Порядок вычислений таков, что «9 5 -
» вычисляется в 4, и аналогично «x 2 ^
» вычисляется в . В особом случае вычисляется в 1.
Обратите внимание, что всякий раз, когда происходит одно из следующих событий:
операция пытается взять число из пустого стека;
операция
^
пытается возвести что-то в отрицательную степень;результат операции превышает 32-битное знаковое целое число;
или в конце вычисления размер стека не равен единице —
вы получаете результат «Неправильный ответ» для теста, где это произошло.
Примеры
Примечание
Пример ответа на первый тест кодирует функцию . Обратите внимание, что у нее нет локальных максимумов, нет плато и только один локальный минимум.