Ограничения: время – 1s/2s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
При создании веб-страницы в формате HTML необходимо соблюдать следующие правила:
- Для каждого открывающего тега в тексте должен быть соответствующий закрывающий тег и наоборот.
- Элементы текста, выделенные соответствующими открывающими и закрывающими тегами, могут вложенными друг в друга, и вложенный элемент должен заканчиваться внутри того же элемента, где он начинался. Иными словами, порядок следования закрывающих тегов должен быть обратным тому, в котором следуют теги открывающие.
- Не допускается двойная (и более) вложенность элементов с тегами <b>, <i>, <u>, так как текст не может быть сделан в два раза жирнее, курсивнее или подчеркнутее.
Так как человек может легко ошибиться при вводе HTML-текста без использования специальных редакторов, то
необходимо проверять введенный человеком текст и исправлять найденные ошибки.
Напишите программу, которая исправляет одну строку некоторого текста, записанного в формате HTML с использованием
только тегов <b>, </b>, <i>, </i>, <u> и </u>, добавляя теги, чтобы
он соответствовал указанным выше правилам. Удалять теги, уже заданные в строке, нельзя. Получившая строка должна иметь наименьшую длину. Если есть
несколько вариантов, то нужно выбрать лексикографически наименьшую строку в алфавите, имеющем
следующий порядок символов:
<b> < <i> < <u> < a < b < … < z < </b> < </i> < </u>
где открывающие и закрывающие теги рассматриваются как символы.
Формат ввода
Ввод содержит одну строку длиной от 1 до 1000 символов, состоящую из строчных латинских букв и
тегов <b>, <i>, <u>, </b>, </i>, </u>.
Формат вывода
Вывести скорректированную строку, соответствующую правилам.
Пример ввода 1
<b>aaa<i>bbb</b>ccc</i>ddd
Вывод для примера 1
<b>aaa<i>bbb</i></b><i>ccc</i>ddd
Пример ввода 2
<i><b>ooo<b>ppp</b>qqq</b></u>
Вывод для примера 2
<i><b>ooo</b><b>ppp</b><b>qqq</b><u></u></i>