eolymp
bolt
Try our new interface for solving problems
Problems

Macros (RU)

Macros (RU)

\includegraphics{https://static.e-olymp.com/content/19/1992ab7f2f72909e1e04c377fba4c28249181b3a.jpg} Однажды Бараш решил поучаствовать в литературном конкурсе программистов. Стихотворения принимались на четырех языках: \textit{Assembly}, \textit{Foxy}, \textit{Lispy}, \textit{Prology}. Как старый поэт-программист, Бараш признавал только \textit{Assembly}. Поэтому писать пришлось на нем. Он запустил свой верный \textit{edit.com} под \textit{Dos 6.22} и приступил к делу. Учитывая то, что Бараш был ленивым программистом, он вовсю использовал макросы. Это чрезвычайно ускоряло процесс стихосложения, так как у Бараша было множество заготовок, как и у любого старого поэта-программиста. Стих получился шикарным, но, посовещавшись со своей подругой Нюшей, Бараш понял, что стих недоступен для понимания подавляющего большинства ценителей искусства. Поэтому Бараш решил пожертвовать формой произведения, дабы донести его высший смысл. Для этого он решил отказаться от использования макроопределений в своем произведении, выполнив макроподстановку. Проблема в том, что одно стихотворное макроопределение могло содержать другие макроопределения. Также Бараш был большим любителем циклической макрогенерации, что не могло не отразиться в его произведениях. Ему не хватило душевных сил корежить произведение собственными руками, поэтому он попросил о помощи вас. Помогите Барашу! \InputFile Дано стихотворение, содержащее макроопределения. Формат макроопределений имеет следующий вид (вместо каждого символа '_' во входном и выходном файлах будет стоять точно один пробел): 1. Макроопределения: \textbf{#identificator_\{\}} Идентификатор (имя макроопределения) состоит не более, чем из \textbf{10} строчных латинских букв. Не встречается макроопределений с именем '\textbf{rep}'. 2. Макровызовы: \textbf{##identificator_} 3. Циклические макроопределения: \textbf{#rep_n_\{\}} \textbf{n} -- целое число повторов текста (\textbf{0} <= \textbf{n} <= \textbf{100}). Назовем блоком текст , заключенный между фигурными скобками. Bсе стихотворение также называется блоком. В любом блоке могут встречаться другие макроопределения и макровызовы. Макроопределение считается действующим для всего последующего текста текущего блока и всех последующих вложенных блоков, если только во вложенном блоке не переобъявлено макроопределение с таким же именем. Если во вложенных блоках встретились макроопределения с таким же именем, как и во внешнем блоке, тогда действующим считается макроопределение внутреннего блока. В блоке не может встретиться двух одноименных макроопределений. Рекурсивные вызовы отсутствуют. Вызовы несуществующих макроопределений игнорируются. Все макровызовы, которые в тексте стихотворения стоят ранее макроопределения, считаются несуществующими и, следовательно, игнорируются. \OutputFile Исправленный текст стихотворения.
Time limit 2 seconds
Memory limit 64 MiB
Input example #1
##a_
#a {a}##a 
#b {##a  #a {b}##a #c {##a } ##c }
##b ##c 
##a 
Output example #1
a

a b b
a