eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Дріб у LATEX-і

Дріб у LATEX-і

Видавнича система LATEX призначена для верстки складних науково-технічних текстів з великою кількістю формул. Початковий файл для системи LATEX пишеться на мові TEX і являє собою текст документу, у якому включено спеціальні символи та команди. Спеціальні символи та команди описують розміщення тексту, зокрема у математичних формулах. Команда являє собою послідовність латинських літер (регістр важливий), перед якою стоїть символ \textbackslash . Так, команда \textbackslash frac призначена для опису дробу, у якому чисельник розміщено над знаменником. Розглянемо найпростішу структуру команди \textbackslash frac. Комадна \textbackslash frac має два параметри - чисельник та знаменник. Перед самою командою не обов'язково ставити пропуск. Слідом за ключовим словом \textbackslash frac записуються чисельник та знаменник. Якщо чисельник та знаменник мають довжину більше одного символу, вони беруться у фігурні дужки. Якщо чисельник або знаменник записуються однією літерою або цифрою, їх можна не брати у фігурні дужки. Якщо чиельник записується одним символом, то він відокремлюється від \textbackslash frac хоча б одним пропуском. Якщо знаменник записується одним символом, то він не відокремлюється пропуском від чисельника. Довільна ненульова кількість пропусків вважається синтаксично еквівалентною одному пропуску. Не можна відокремлювати пропусками на частини ключовое слово \textbackslash frac. Дамо також формальні визначення виразу для нашої задачі: <вираз> ::= <елемент> | <елемент><вираз> <елемент> ::= <дріб> | \{ <вираз> \} | <інший математичний елемент> <дріб> ::= "\textbackslash frac" <тіло дробу> <тіло дробу> ::= <чисельник><знаменник> <чисельник> ::= <пропуски><символ який не є пропуском> | \[<пропуски>\] "\{" <вираз> "\}" <знаменник> ::= <символ який не є пропуском> | \[<пропуски>\] "\{" <вираз> "\}" <інший математичний елемент> ::= \textit{довільна послідовність друкованих символів, яка не містить фігурних дужок та підрядка }\textbackslash frac <пропуски> ::= " " | " " <пропуски> <символ який не є пропуском> ::= \textit{довіольний друкований символ, за винятокм} " ", "\textbackslash ", "\{" та "\}" Тут вертикальна ряика | означає що або, взята у квадратні дужки частина може бути відсутньою, а символи, записані у лапках позначають самих себе. Друкований символ - довільний символ з ASCII кодом від 32 (пропуск) до 127. Наприклад, вираз \includegraphics{https://static.e-olymp.com/content/a7/a7a0b884f373e5fc4f413f7972a59cdbbf29b168.jpg} записується на мові TEX так \textbackslash frac\{a+b\}\{d+1\}+\textbackslash frac ax -\textbackslash frac 2 \{2+\textbackslash frac\{3\}\{y\}\} Щоб у друкованому документі вивести формулу, необхідно обчислити її висоту для використовуваного при друці шрифта. Шрифт визначає розміри \textit{S} -- висоту чергового символу і \textit{D} -- висоту горизонтальної дробової риски. Значення \textit{S} і \textit{D} задаються цілими числами. Ваша задача - для заданого виразу на мові TEX обчислити висоту формули. Відмітимо, що якщо два дроби належать одному виразу, то їх дробові риски записуються на одному рівні, а якщо ні (наприклад, відносяться до чисельників або знаменників різчних дробів), ця властивість може і не виконуватись. Щоб проілюструвати застосування цього правила, наведемо два приклади: \textbackslash frac\{a+b\}\{\textbackslash frac cd\}+\textbackslash frac\{\textbackslash frac ef\}\{g+h\} \includegraphics{https://static.e-olymp.com/content/16/16f3dd7459008f5c224cd13371f5e169629960b5.jpg} \textbackslash frac\{a+b+c\}\{\textbackslash frac\{\textbackslash frac de\}\{g+h\}\}+\textbackslash frac\{i+j+k\}\{\textbackslash frac\{l+m\}\{\textbackslash frac no\}\} \includegraphics{https://static.e-olymp.com/content/9e/9eeec83f54a2dc3b6dbe13fac2e8333b1f8b5ee2.jpg} \InputFile У першому рядку знаходяться цілі додатні числа \textbf{S} і \textbf{D} (\textbf{1} ≤ \textbf{S}, \textbf{D} ≤ \textbf{10000}). Наступний рядок містить опис формули на \textbf{TEX}-і, довжина рядка не більше \textbf{200} символів. Гарантується, що формула синтаксично коректна, тобтоь фігурні дужки утворюють правильну дужкову послідовність і рядок містить лише друковані символи. Усі символи \textbf{\textbackslash }, що зустрічаються у рядку відносяться до деякої командної послідовності (не обов'язково \textbf{\textbackslash frac}), можете вважати, що усі інші командні послідовності задають символи, висота яких рівна \textbf{S}. Чисельник та знаменник кожного дробу містять хоча б по одному символу, уся формула містить хоча б один символ. \OutputFile Виведіть у вихідний файл єдинствене число - висоту формули.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
10 2
\frac{a+b}{d+1}+\frac ax -\frac 2 {2+\frac{3}{y}}
Вихідні дані #1
34