Задача №1127. Форматирование текста
Компания MacroHard разработала новый язык программирования PASCAL++. В этом языке имеется оператор вывода PrintLn, с помощью которого можно выводить строки любой длины. По стандарту языка, разработанному специалистами компании, некоторые комбинации символов в строке должны при выводе играть особую роль:
Комбинация | Значение |
\n | Переход на новую строку |
\t | Вывод K пробелов (\(1\leq K \leq 7\))), после чего курсор оказывается на позиции, имеющей номер вида \(7N+1\) (первая позиция каждой строки имеет номер 1). |
\\ | Вывод символа "\". |
\XY где X и Y – шестнадцатеричные цифры (0..9, A..F или a..f), причем XY20 | Вывод символа, имеющего ASCII код XY |
Например, строка "New line\ntab\tslash\\\nA char \41, rus Б \81" должна была быть напечатана в следующем виде :
-
Напечатано
Здесь пробелы для наглядности обозначены символами
New line
tab slash\
A char A, rus Б Б
Newline
tabslash\
AcharA,rusББ
К сожалению, главный программист забыл добавить в компилятор правильную процедуру форматирования. Поэтому строки выводятся прямо так, как они были записаны. Ваша задача состоит в том, чтобы преобразовать файл, полученный в результате выполнения одного или нескольких операторов PrintLn к форме, которая была задумана.
Входной файл содержит одну или несколько строк, каждая из которых является результатом работы неправильного оператора PrintLn. Размер файла не превышает 100000 байт.
(Все символы "\", встречающиеся во входном файле участвуют в создании какой-либо ключевой комбинации, т.е. сразу после любой последовательности, состоящей из нечетного количества подряд идущих символов "\", следует символ из набора {"n", "t", "\", "0".."9", "A".."F", "a".."f" }, причем в случае символа из множества {"0".."9", A".."F", "a".."f"}, затем следует еще один символ из этого множества.)
Выведите в выходной файл, как выглядел бы данный текст, если бы он был перобразован по соответствующим правилам языка PASCAL++.
Примеры
Входные данные | Выходные данные |
New line\ntab\tslash\\ A char \41, rus Б \81 | New line tab slash\ A char A, rus Б Б |