eolymp
bolt
Try our new interface for solving problems
Məsələlər

Дробь в 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 Выведите в выходной файл единственное число - высоту формулы.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
10 2
\frac{a+b}{d+1}+\frac ax -\frac 2 {2+\frac{3}{y}}
Çıxış verilənləri #1
34