User Tools

Site Tools


Sidebar






Old

project_2_kutsenok

This is an old revision of the document!


Чекер для работы с файловой системой - лабиринт

Задача

Общая постановка задачи

Дана некоторая корневая директория, в которой может находиться некоторое количество папок, в том числе вложенных. В этих папках хранятся некоторые текстовые файлы, имеющие имя вида <filename>.txt.

Требуется найти файл, который содержит строку “Minotaur” (файл-минотавр).

Файл, с которого следует начинать поиск, всегда называется file.txt (но полный путь к нему неизвестен).

Каждый текстовый файл, кроме искомого, может содержать в себе ссылку на название другого файла (эта ссылка не содержит пути к файлу). Таких ссылок может быть несколько.

Пример:

a1.txt
@include a2.txt
@include b5.txt
@include a7.txt

Пример тупика:

a2.txt
Deadlock

Программа должна вывести правильную цепочку файлов (с путями), которая привела к поимке файла-минотавра.

Пример

file.txt: 
@include file1.txt
@include file4.txt
@include file5.txt

file1.txt: 
Deadlock

file2.txt: 
@include file3.txt 

file3.txt: 
Minotaur

file4.txt:
@include file2.txt
@include file1.txt

file5.txt:
Deadlock

Правильный ответ:

root/add/add/file.txt
root/add/mul/add/file4.txt
root/add/mul/file2.txt
root/add/mul/file3.txt

! Цепочка, приводящая к файлу-минотавру может быть только одна. ! Общее количество файлов в каталоге не может быть больше 200. ! Циклических зависимостей быть не может. ! Файлы не могут иметь одинаковые имена.

project_2_kutsenok.1492177236.txt.gz · Last modified: 2022/12/10 09:08 (external edit)