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

Макроси

Макроси

\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_\{\[text\]\}} Ідентифікатор (ім'я макровизначення) складається не більше, ніж з \textbf{10} рядкових латинських літер. Не зустрічається макровизначень з іменем '\textbf{rep}'. 2. Макровиклики: \textbf{##identificator_} 3. Циклічні макровизначення: \textbf{#rep_n_\{\[text\]\}} \textbf{n} -- ціле число повторень тексту \textbf{\[text\]} (\textbf{0} <= \textbf{n} <= \textbf{100}). Назвемо блоком текст \textbf{\[text\]}, що міститься між фігурними дужками. Bесь вірш також називається блоком. У довільному блоці можуть зустрічатись інші макровизначення та макровиклики. Макровизначення вважається діючим для всього наступного тексту поточного блоку і всіх наступних вкладених блоків, якщо тільки у вкладеному блоці не переоголошено макровизначення з таким же іменем. Якщо у вкладених блоках зустрілись макровизначення з таким же іменем, як і у зовнішньому блоці, то діючим вважається макровизначення внутрішнього блоку. У блоці не може зустрітися двох одноіменних макровизначень. Рекурсивні виклики відсутні. Виклики неіснуючих макровизначень ігноруються. Всі макровиклики, які в тексті вірша стоять раніше макровизначення, вважаються неіснуючими і, відповідно, ігноруються. \OutputFile Виправлений текст вірша.
Ліміт часу 2 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
##a_
#a {a}##a 
#b {##a  #a {b}##a #c {##a } ##c }
##b ##c 
##a 
Вихідні дані #1
a

a b b
a