Дано 2 многочлена, надо вычислить их произведение.
Исходные данные
В двух строках входных данных записаны многочлены. Длина каждой строки не
более 100.
Многочлен состоит из слагаемых, разделенных знаками "+" или "–".
Слагаемое состоит из множителей, разделенных знаком "*".
Первым множителем может быть коэффициент (в том числе нулевой).
Коэффициент может быть с ведущими нулями, но не превышает 100, коэффициент
первого слагаемого может иметь знак "–".
Остальные множители имеют вид X^N или X, где X — переменная (строчная
латинская буква), N — целое неотрицательное число не больше 100
(возможно, с ведущими нулями).
В любом месте могут стоять пробелы.
Результат
Выведите произведение многочленов в одной строке.
Многочлен не должен иметь подобных слагаемых и множителей с одинаковой
переменной внутри слагаемого.
Не пишутся слагаемые с нулевым коэффициентом и множители с нулевым
показателем степени.
Также не пишутся единичные коэффициенты и показатели степеней.
Исключения составляют слагаемое "1" и многочлен "0".
Множители внутри слагаемого упорядочиваются по алфавиту.
Слагаемые упорядочиваются по убыванию суммы показателей степеней множителей.
В случае равных сумм вперед идет слагаемое с большим показателем степени
переменной a, при равенстве рассматривается переменная b и т.д.
Пробелы расставляются так, как показано в примере.
Пример
исходные данные |
---|
x*y*z + 4*x^2*y - 2*z*y*y^4 - 1
x + 7*z
|
результат |
---|
-2*x*y^5*z - 14*y^5*z^2 + 4*x^3*y + 29*x^2*y*z + 7*x*y*z^2 - x - 7*z
|
Автор задачи: Владимир Яковлев
Источник задачи: XII командный чемпионат школьников Свердловской области по программированию (15 октября 2005 года)