Дискове дерево#4119

Дискове дерево

2 секунди
16 мегабайтів
Легка

Хакер Білл випадково втратив усю інформацію з жорсткого диска своєї робочої станції, і у нього немає резервних копій. Він не шкодує про втрату самих файлів, але йому дуже бракує зручної та ретельно організованої структури каталогів, яку він створював і підтримував роками.

На щастя, у Білла залишилися кілька копій списків каталогів з його жорсткого диска. Використовуючи ці списки, він зміг відновити повні шляхи до деяких каталогів (наприклад, WINNT\SYSTEM32\CERTSRV\CERTCO~1\X86). Він записав усі знайдені шляхи у файл, помістивши кожен на окремому рядку.

Ваша задача — допомогти Біллу відновити структуру його каталогів, відформатувавши та вивівши дерево каталогів на основі наданих шляхів.

Вхідні дані

Перший рядок містить одне ціле число (1 \leq N \leq 500) — кількість різних шляхів до каталогів. Наступні рядків містять по одному шляху у кожному, без пробілів на початку і в кінці. Довжина кожного шляху не перевищує символів, кожен шлях зустрічається рівно один раз. Кожен шлях складається з назв каталогів, розділених зворотним слешем ("").

Назва каталогу містить від до символів: це можуть бути великі латинські літери, цифри або такі спеціальні символи: знак оклику, решітка, долар, відсоток, амперсанд, апостроф, круглі дужки, дефіс, at, циркумфлекс, підкреслення, гравіс, фігурні дужки, тильда ("!#$%'()-@^_' ").

Вихідні дані

Виведіть відформатоване дерево каталогів. Ім'я кожного каталогу має виводитись в окремому рядку, з кількістю пропусків на початку, що дорівнює його глибині у ієрархії. Підкаталоги повинні з'являтися у лексикографічному порядку одразу після батьківського каталогу і бути зсунутими на один пропуск далі, ніж батьківський каталог. Кореневі каталоги не повинні містити пропусків попереду та також друкуються у лексикографічному порядку.

Див. приклад для роз'яснення формату виводу.

Приклади

Приклад 1

Loading
Loading