Дисковое дерево
Хакер Билл случайно потерял всю информацию с жесткого диска своей рабочей станции, и у него нет резервных копий содержимого. Он не сожалеет об утере самих файлов, однако у него имелась очень хорошая и удобная структура каталогов, которую он создавал и лелеял многие годы работы.
К счастью, у Билла имеется несколько копий каталогов из своего жесткого диска. Используя эти списки он смог восстановить полные пути (как например WINNT\SYSTEM32\CERTSRV\CERTCO~1\X86
) для некоторых директорий. Он положил их все в файл, записав каждый найденный путь в отдельной строке.
Напишите программу, которая поможет Биллу восстановить изысканную структуру его директорий путем создания отформатированного дерева каталогов.
Входные данные
Первая строка содержит одно целое число - количество различных путей каталогов. Следующие строк содержат пути к каталогам. Каждый путь к каталогу находится в отдельной строке и не содержит пробелов - ни ведущих, ни заключительных. Длина пути не превышает символов. Каждый путь встречается один раз и содержит имена каталогов, разделенных обратным слэшем ("\").
Каждое имя каталога содержит от до заглавных букв, цифр, или специальных символов со следующего списка: восклицательный знак, знак номера, знак доллара, знак процента, амперсанд, апостроф, открывающая или закрывающая скобка, дефис, коммерческое а, изогнутый апостроф, символ подчеркивания, ударение, открывающая или закрывающая фигурная скобка и тильда ("!#$%'()-@^_' ").
Выходные данные
Выходные данные следует отформатировать в виде дерева каталогов. Каждое имя каталога следует выводить в отдельной строке, ему предшествует количество пробелов, равное его глубине в иерархии каталогов. Подкаталоги следует выводить в лексикографическом порядке сразу же после родительских каталогов. Причем количество пробелов перед подкаталогом должно быть на один больше, нежели количество пробелов перед родительским каталогом. Корневые каталоги не содержат перед собой пробелов и также выводятся в лексикографическом порядке. Для уточнения формата вывода смотрите пример.