Simplification Simplification
Challenging
EN FR Russian

"Вы думаете, всё так просто? Да, всё просто. Но совсем не так.."
-― Альберт Эйнштейн

В математике, многочлен это выражение состоящее из переменных и коэффициентов, использующее только операции сложения, вычитания, умножения и возведение в положительную степень.

Дано математическое выражение со скобками и одной переменной, как строка. Данное выражение состоит их "x", скобок и следующих операторов: + - *. Вам нужно раскрыть скобки и привести это выражение к многочлену. Степень "x" должна быть записана, как "**".

Окончательная форма многочлена должна быть представлена в следующем формате:

     CN*x**n+CN1*x**(n-1)+...+C1*x+C0
    

где
СN, СN1 ...С1, С0 - коэффициент, целое число.
Если C = 0, то не данный одночлен не записывается (пр. 2*x**2+3). Единственное исключение - это одиночный ноль (пр. "x-x" == "0").
Если C = 1, то не записывать C. (пр. x**2+2*x). Исключение - С0.
Если C = -1, не записывать C, только "-". (пр. x*x-x). Исключение - С0.
Если степень x равна 1, то не надо показывать степень (пр. 5*x).
Одночлены должны быть записаны отсортированы по степеням переменной в убывающем порядке.

Входные данные: Выражение, как строка.

Выходные данные: Многочлен, как строка.

Примеры:

simplify("(x-1)*(x+1)") == "x**2-1"
simplify("(x+1)*(x+1)")...
You should be an authorized user in order to see the full description and start solving this mission.