Олимпиадный тренинг

Задача . FTP-геймер (2024-2025,11)


Задача

Темы:

Для передачи файлов в интернете можно использовать протокол FTP (File Transfer Protocol). Это клиент-серверный протокол, в котором команды и данные передаются по двум разным каналам, управляющему каналу и каналу данных соответственно.

Рассмотрим некоторые команды протокола FTP.

По команде RETR Path сервер по каналу данных отправляет клиенту файл по указанному пути, после чего клиент должен сохранить файл на устройство.

По команде MLSD Path сервер по каналу данных отправляет клиенту информацию о содержимом указанного каталога (или информацию о файле, если по пути лежит файл). Информация о каждом элементе каталога возвращается в виде набора фактов. Каждый факт представляется в виде пары ключ-значение в формате Name=Value;.

Ниже представлены некоторые стандартные факты:

  • Create — время создания в формате YYYYMMDDhhmmss (например, время создания 05 ноября 1995 10:17:54 будет записано как 19951105101754);
  • Modify — время последнего изменения в формате YYYYMMDDhhmmss;
  • Type — тип элемента каталога:
    • file — обычный файл;
    • dir — каталог;
    • cdir — текущий каталог;
    • pdir — родительский каталог;
  • Size — размер файла в байтах, указывается только для файлов.

При этом не все факты должны присутствовать в ответе команды.

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

Команда возвращает одну строку с типом элемента каталога, равным cdir, в таком случае название элемента каталога равно полному пути к каталогу. Команда возвращает одну строку с типом элемента каталога, равным pdir, и тогда название элемента каталога указывается как две точки (..).

Пример выполнения команды MLSD tmp:

Type=cdir;Modify=19981107085215; /tmp
Type=pdir;Modify=19990112030508; ..
Type=file;Size=25730;Modify=19940728095854; capmux.tar.z
Type=file;Size=1830;Modify=19940916055648; hatch.c
Type=file;Size=25624;Modify=19951003165342; MacIP-02.txt
Type=file;Size=2154;Modify=19950501105033; uar.netbsd.patch
Type=file;Size=54757;Modify=19951105101754; iptnnladev.1.0.sit.hqx
Type=file;Size=226546;Modify=19970515023901; melbcs.tif
Type=file;Size=12927;Modify=19961025135602; tardis.1.6.sit.hqx
Type=file;Size=17867;Modify=19961025135602; timelord.1.4.sit.hqx
Type=file;Size=224907;Modify=19980615100045; uar.1.2.3.sit.hqx
Type=file;Size=1024990;Modify=19980130010322; cap60.pl198.tar.gz


Миша нашёл в интернете общедоступный FTP-сервер и начал исследовать его содержимое. Ниже представлено содержимое каталога /Games этого сервера:

Полный путь Размер (в байтах) Тип Время создания
/ - Каталог 12 января 2012 07:47:00
/Games - Каталог 10 марта 2014 10:55:00
/Games/0ad_0.0.22_amd64.appimage 1 030 321 584 Файл 29 мая 2018 14:00:00
/Games/battle-for-wesnoth-1.18.3-win.zip 506 219 599 Файл 28 октября 2024 20:45:00
/Games/endless-sky-v0.10.10.dmg 282 303 434 Файл 26 октября 2024 22:38:00
/Games/freeciv-gtk3.22-3.1.4-x86_64.appimage 155 636 928 Файл 03 января 2025 00:33:00
/Games/openttd_1.10.3_amd64.appimage 69 316 648 Файл 27 января 2021 14:41:00
/Games/super-tux-kart_1.2_amd64.appimage 594 681 896 Файл 22 февраля 2021 14:48:00
/Games/super-tux-v0.6.3-win64.msi 178 823 737 Файл 23 декабря 2021 01:25:00
/Games/unknown-horizons-2019.1.214-SetupVC15-x86.exe 192 179 770 Файл 24 февраля 2019 16:23:00

Миша выполнил команду MLSD /Games, после чего выполнил несколько команд RETR. Известно, что всего по каналу данных было передано 575 536 968 байт и что команда MLSD на этом сервере возвращает факты Size, Type и Create. Выберите файлы, которые были получены с помощью команды RETR. Если есть несколько вариантов того, какие файлы могли быть получены, выберите тот, в котором меньше всего файлов.

Варианты ответа:

  • 0ad_0.0.22_amd64.appimage
  • battle-for-wesnoth-1.18.3-win.zip
  • endless-sky-v0.10.10.dmg
  • freeciv-gtk3.22-3.1.4-x86_64.appimage
  • openttd_1.10.3_amd64.appimage
  • super-tux-kart_1.2_amd64.appimage
  • super-tux-v0.6.3-win64.msi
  • unknown-horizons-2019.1.214-Setup-VC15-x86.exe
  • Такого набора файлов не существует

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя