User Tools

Site Tools


Sidebar






Old

project_2_kutsenok

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

Задача

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

Дана некоторая корневая директория, в которой может находиться некоторое количество папок, в том числе вложенных. В этих папках хранятся некоторые текстовые файлы, имеющие имя вида <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.txt · Last modified: 2022/12/10 09:08 (external edit)