Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Макрос

(Время: 1 сек. Память: 16 Мб Сложность: 72%)

Однажды Бараш решил поучаствовать в литературном конкурсе программистов. Стихотворения принимались на четырех языках: Assembly, Foxy, Lispy, Prology. Как старый поэт-программист, Бараш признавал только Assembly. Поэтому писать пришлось на нем. Он запустил свой верный edit.com под Dos 6.22 и приступил к делу. Учитывая то, что Бараш был ленивым программистом, он вовсю использовал макросы. Это чрезвычайно ускоряло процесс стихосложения, так как у Бараша было множество заготовок, как и у любого старого поэта-программиста.

Стих получился шикарным, но, посовещавшись со своей подругой Нюшей, Бараш понял, что стих недоступен для понимания подавляющего большинства ценителей искусства. Поэтому Бараш решил пожертвовать формой произведения, дабы донести его высший смысл. Для этого он решил отказаться от использования макроопределений в своем произведении, выполнив макроподстановку.

Проблема в том, что одно стихотворное макроопределение могло содержать другие макроопределения. Также Бараш был большим любителем циклической макрогенерации, что не могло не отразиться в его произведениях. Ему не хватило душевных сил корежить произведение собственными руками, поэтому он попросил о помощи вас. Помогите Барашу!

Бараш использовал следующий формат макроопределений (вместо каждого символа ‘_’ во входном и выходном файлах будет стоять точно один пробел):

  1. Макроопределения:
    #identificator_{}
    Идентификатор (имя макроопределения) состоит не более, чем из 10 строчных английских букв. Не встречается макроопределений с именем “rep”.
  2. Макровызовы:
    ##identificator_
  3. Циклические макроопределения:
    #rep_n_{}
    n – целое число повторов текста (0 ≤ n ≤ 100).

Назовем блоком текст , заключенный между фигурными скобками. Bсе стихотворение также называется блоком.

В любом блоке могут встречаться другие макроопределения и макровызовы. Макроопределение считается действующим для всего последующего текста текущего блока и всех последующих вложенных блоков, если только во вложенном блоке не переобъявлено макроопределение с таким же именем. Если во вложенных блоках встретились макроопределения с таким же именем, как и во внешнем блоке, тогда действующим считается макроопределение внутреннего блока. В блоке не может встретиться двух одноименных макроопределений.

Рекурсивные вызовы отсутствуют. Вызовы несуществующих макроопределений игнорируются. Все макровызовы, которые в тексте стихотворения стоят ранее макроопределения, считаются несуществующими и, следовательно, игнорируются.

Входные данные

Входной файл INPUT.TXT содержит число N - количество строк в стихотворении. Далее идет N строк стихотворения. Общий объем входных данных не превышает 1024 байт.

Выходные данные

В выходной файл OUTPUT.TXT выведите исправленный текст стихотворения.

Примеры

INPUT.TXTOUTPUT.TXT
15
##a_
#a_{a}##a_
#b_{##a__#a_{b}##a_#c_{##a_}_##c_}
##b_##c_
##a_

a

a_b_b
a
24
#a_{#b_{#c_{a}##c_}##b_}##a_
#e_{#b_{#c_{b}##c_}##b_}##e_
#f_{#b_{#c_{c}##c_}##b_}##f_
##a_##e_##f_##b_##c_
a
b
c
abc

Примечание

В примерах символы пробелов во входных и выходных данных обозначены символом "_" (подчеркивание).


Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2011 / 2012
 2012 / 2013
 2013 / 2014
 2014 / 2015
 2015 / 2016
 2016 / 2017
 2017 / 2018
 2018 / 2019
 A. Телефон
 B. Балда
 C. Шахматное поле
 D. Пересечение множеств
 E. Алтайский технический университет
 F. Макрос
 G. Единицы
 H. Простые числа - 2
 I. Спираль
 J. Клад

Красноярский краевой Дворец пионеров, (c)2006 - 2020, E-mail: admin@acmp.ru



Лучший Форекс Брокер https://tradeallcrypto.com/ проводит акцию, успей принять участие!