ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

1408. Умножение многочленов

Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
Дано 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 года)