Проверка на ноль
Скорее всего, Вам известно, что x(sin^2 x + cos^2 x) − x = 0, а также что sin(2x) − 2 sin x cos x = 0. Но известно ли Вам, что tan (2x)(x − x tan^2 x) − 2x tan x = 0? Или поверите ли Вы в то, что sin (2x) − 2 cos x = 0?
Последнее утверждение ложно, но не верьте нам. Вам следует написать программу, которая проверит, упрощается ли заданное алгебраическое выражение до нуля (всякий раз, когда оно определено).
Входные данные
Состоит из нескольких тестов, каждый из которых задается в одной строке. Каждый тест начинается целым числом n - количеством лексем, описывающих формулу. Следующие n лексем задают формулу в обратной польской записи. Запись задается следующим образом. Вначале имеется пустой стек, и следующие команды манипулируют его содержимым:
"x" заносит переменную x в стек.
"sin", "cos" и "tan" заменяют верхний элемент стека на значение его синуса, косинуса и тангенса соответственно.
"+", "-" и "*" заменяют два верхних элемента стека (a на вершине, за ним следует b) на их сумму (b + a), разность (b − a) и произведение (b ∗ a) соответственно.
Входные данные корректны, результатом выражения является значение на вершине стека. Длина строки не более 300 символов. Аргументами функций могут быть функции, то есть выражение вида x sin sin является допустимым, однако рекурсия не будет заходить дальше указанного случая. Вход завершается строкой, в которой n = 0.
Выходные данные
Для каждого теста вывести в отдельной строке "Identity", если выражение тождественно равно нулю, и "Not an identity" иначе.