Практика «Disk Tree»

Репозиторий содержит решение этой задачи с ulearn.me. Задача прошла код-ревью у преподавателя (баллы: 50/50). Все решения курса на максимальный балл также выложены в других репозиториях. Ветка unsolved содержит изначальный проект.

Практика «Disk Tree»

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

К счастью, у Билла есть множество копий листингов директорий с его жесткого диска, с помощью которых он смог восстановить полные пути (например, "WINNT\SYSTEM32\CERTSRV\CERTCO~1\X86") для некоторых директорий.

Ваша задача - написать программу, которая поможет Биллу восстановить его драгоценную структуру каталогов, предоставляя красиво оформленное дерево каталогов.

На вход ваша программа принимает список строк, соответствующих полным путям директорий. Каждый путь не содержит пробелов, не превосходит по размеру 80 символов, содержится в списке единственный раз и состоит из имени директорий, разделенных символом .

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

Источник задачи — acm.timus.ru