Задача 4: Сортировка В библиотеке есть 8 томов полного собрания сочинений одного писателя. Библиотекарь обозначил их латинскими буквами от A до H в порядке выхода томов, но оказалось, что они стоят на полке в обратном порядке:
HGFEDCBA
Библиотекарь решил переставить эти книги так, чтобы они шли по порядку: ABCDEFGH. За одну операцию библиотекарь может взять две или более подряд идущих книг, достать их с полки и, не меняя порядок следования книг, переставить их в какое-то другое место на полке (между другими какими-то книгами, в начало или в конец полки).
Например, библиотекарь может взять три тома FED, достать их с полки (на полке останутся тома HGCBA), и поставить их так, чтобы перед ними оказалось 4 тома. Получится HGCBFEDA. Можно поставить их в начало полки, тогда получится последовательность FEDHGCBA, а если поставить их в конец, то получится HGCBAFED.
библиотекарю упорядочить этот ряд книг за минимальное число операций.
ответ запишите в виде последовательности строк, каждая строка должна соответствовать какому-то расположению томов на полке, то есть быть перестановкой символов ABCDEFGH. Первой строкой ответа должна быть HGFEDCBA, последней строкой ответа должна быть ABCDEFGH, и каждая строка ответа (кроме первой) должна получаться из предыдущей применением указанной операции. Обратите внимание, что переставляемый фрагмент не может состоять только из одной книги. То есть ответ должен иметь такой вид (вместо многоточий находится несколько пропущенных строк).
HGFEDCBA
...
...
...
ABCDEFGH
Чем меньше операций будет в вашем алгоритме, тем больше вы получите, при условии, что в результате применения вашего алгоритма тома будут расставлены по порядку от A до H
1. Время передачи по высокоскоростному каналу
2. Время передачи по низкоскоростному каналу
3. Время для получения первых 1024 Кб
4. Всё сложим.
2^20 бит/с = 2^20 / 8 / 1024 Кбайт/с = 2^20 / 2^3 / 2^10 = 2^7 Кбайт/с
2^13 бит/с = 2^13 / 8 / 1024 Кбайт/с = 2^13 / 2^3 / 2^10 = 2^0 = 1 Кбайт/с
10 Мб равно 10*1024 Кбайт = 10*2^10 Кбайт.
По высокоскоростному каналу файл будет передаваться
(10*2^10) / 2^7 = 10*2^3 = 80 секунд
По низкоскоростному каналу файл будет передаваться
(10*2^10) / 1 = 10*2^10 = 10240 секунд.
Первые 1024 Кбайт будут передаваться
2^10 / 2^7 = 8 секунд
Общее время 80+10240+8 = 10328 секунд.