Задача D. Слияние каталогов

Автор:А. Баранов   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:256 Мб
Выходной файл:output.txt  

Условие

Пусть имеются два каталога dir1 и dir2, содержащие некоторые файлы и подкаталоги (папки). Требуется выполнить их слияние, включающее в себя набор следующих шагов:

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

Известно, что в следующих случаях указанные команды приводят к возникновению ошибки:

Задачу требуется решить, задействовав наименьшее число таких команд.

Формат входного файла

В начале входного файла "input.txt" записано содержимое каталога dir1. Далее следует точно такое же описание для каталога dir2. Содержимое каталога заключается в круглые скобки и представляет собой набор записей, отделенных друг от друга запятыми и имеющих следующий формат:

"name":time, где name — имя элемента; time — время последнего изменения (представляет собой целое число в диапазоне от 0 до 2641).

После записи, соответствующей подкаталогу, обязательно указываются круглые скобки (возможно пустые), в которых аналогичным образом перечисляется его содержимое.
При этом порядок следования элементов в пределах одного каталога может быть произвольным.

Формат выходного файла

Выходной файл "output.txt" должен содержать необходимый набор команд cpy и del, представленных в описанном выше формате.

Ограничения

Полагается, что на имена файлов/подкаталогов в пределах отдельно взятого каталога накладываются следующие ограничения:

Общее количество элементов в каждом из каталогов (включая содержимое всех его подкаталогов) не превосходит 104.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
("sub1":10325 ("fid1":1094, "fid0":3217,
 "sub2":4905  ("fid3":5600)
              ),
 "sub3":24601 ()
)

("sub1":10325 ("fid1":1094, "fid2":3210,
 "sub2":4905  ("fid3":5000,
               "fid4":1249)
              ),
 "sub3":30509
)
del "sub1/fid2"
cpy "sub1/fid0"
del "sub1/sub2/fid4"
cpy "sub1/sub2/fid3"
del "sub3"
cpy "sub3"

0.096s 0.023s 15