TEX2HTML
Ендрю щойно завершив написання своєї дисертації. Це була велика робота, і тепер він хоче отримати відгуки від своїх друзів. Він вважає, що найкращий спосіб поділитися своєю роботою — опублікувати її в блозі. Ендрю написав свою дисертацію у форматі TEX, і тепер йому потрібно перетворити її в HTML. Допоможіть Ендрю реалізувати найважливішу частину конвертера — конвертер математичних формул.
Формули Ендрю завжди укладені в знаки долара ($). Вони містять латинські літери, цифри, дужки, пробіли, бінарні оператори (+-*/), верхні та нижні індекси. Ви повинні ігнорувати всі пробіли.
Верхні індекси записуються за допомогою символу капелюха (^) та фігурних дужок ({}). Частина формули всередині дужок є самим верхнім індексом. Ви можете припустити, що після символу капелюха буде лише один непробільний символ. Якщо верхній індекс містить лише один символ, дужки можна опустити. Верхній індекс не буде слідувати за іншим верхнім або нижнім індексом. Наприклад, a^2 означає a^2
, 2^{2 + 2} означає 2^(2+2)
.
Нижні індекси записуються за допомогою символу підкреслення (_) та фігурних дужок ({}). Частина формули всередині дужок є самим нижнім індексом. Ви можете припустити, що після символу підкреслення буде лише один непробільний символ. Якщо нижній індекс містить лише один символ, дужки можна опустити. Нижній індекс не буде слідувати за іншим нижнім або верхнім індексом. Наприклад, x _ i означає x[i]
, P _ {n+1-i} означає P[n+1-i]
.
Ваша програма повинна створювати HTML-подібний вихід, використовуючи наступні правила. Кожна літера повинна бути курсивом, використовуючи відкриваючий тег < i > та закриваючий тег < /i >. Ці теги повинні охоплювати кожну максимальну послідовність літер (не забудьте ігнорувати пробіли). Кожен бінарний оператор повинен бути оточений нерозривними пробілами (& nbsp;). Верхні індекси повинні бути укладені в теги < sup > та < /sup >. Нижні індекси повинні бути укладені в теги < sub > та < /sub >.
Ви можете припустити, що вхід міститиме правильну математичну формулу лише з бінарними операторами.
Вхід
Містить кілька тестових випадків. Кожен тестовий випадок — це рядок з двома знаками долара з формулою між ними. Жодних зайвих символів у рядку не буде.
Вихід
Надрукуйте HTML-версію кожної формули в окремому рядку.