Директиви include#2080

Директиви include

4 секунди
64 мегабайти
Складна

Багато мов містять спеціальну директиву, яка вставляє вміст одного файлу всередину іншого. Часто такі директиви називаються include. У цій задачі вам потрібно реалізувати функціональність найпростішого препроцесора, який опрацьовує цю інструкцію. Вам задано набір текстових файлів. Рядок файлу виду "#include <ім'я-файлу>" повинен бути замінений на вміст відповідного файлу (ім'я файлу у директиві може бути як абсолютним, так і відносним; відносний шлях завжди починається з імені файлу або директорії або спецпослідовності ".."). У цьому рядку можуть бути довільні незначущі пропуски, які не розривають елементи include та ім'я-файлу. Якщо файлу з іменем ім'я-файлу не існує, то цей рядок слід просто видалити з тексту файлу.

Вхідні дані

Вхідний файл складається з послідовності описів файлів. Кожен опис починається з рядка, який містить шлях до файлу у форматі файлових систем Windows. Шлях задано абсолютно і не містить пропусків і символів "\", які йдуть підряд. У якості елементу шляху може бути використана спецпослідовність "..", яка позначає перехід у батьківську директорію. Інші спецпослідовності не використовуються. Ім'я довільних директорії і файлу складається з латинських букв, цифр і символу ".". Порівняння імен файлів слід проводити без врахування регістру. Далі йде вміст файлу. Послідовність виду "^Z" позначає кінець файлу. Ця послідовність завжди записана в окремому рядку, тобто кожен рядок файлу, включаючи останній, завершується перенесенням рядка. Вхідний файл містить не менше одного опису. Розмір файлу не перевищує КБ. Довжина кожного рядка файлу не перевищує символів. Усі імена файлів у тесті (включаючи ті, що зустрічаються у директивах include) — це коректні абсолютні або відносні шляхи.

Вихідні дані

Виведіть вміст першого файлу після опрацювання препроцесором. Гарантується, що розмір виведення не перевищить КБ. Якщо опрацювання директив призводить до циклічного процесу, виведіть рядок "Too long file".

Приклади

Приклад 1

Loading
Loading