Игорю необходимо перенести файлы с одного компьютера на другой при помощи внешнего жесткого диска.
Объем диска может быть меньше, чем требуется для переноса всех файлов за один раз. Свободный объем на диске и размеры файлов известны. Кроме того, на компьютере есть важные файлы, перенести которые необходимо в первую очередь.
По заданной информации об объеме файлов на компьютере и свободном объеме на диске определите минимальное количество переносов файлов на внешний жесткий диск, за которое удастся перенести все важные файлы, а также максимальное количество неважных файлов, перенесенных за данное количество переносов, при условии, что перенесены все важные файлы.
Входные данные. В первой строке входного файла находятся два числа: S — размер свободного места на диске (натуральное число, не превышающее 100 000) и N — количество файлов, которые надо перенести (натуральное число, не превышающее 10 000). В следующих N строках находятся значения объемов указанных файлов (все числа натуральные, не превышающие 1000) и значимость файла в виде буквы. A — означает, что файл значимый, B что нет. Информация о каждом файле размещена в отдельной строке.
Выходные данные. Запишите в ответе два числа: сначала наименьшее количество переносов файлов, затем максимальное количество перенесенных файлов В, при условии, что перенесены все файлы А.
Открываем программу Excel и загружаем в неё наш файл. С помощью настраиваемой сортировки, отсортируем сначала файлы по столбцу В (по важности от А до В), а затем по столбцу А по возрастанию. Теперь начнём суммировать размеры файлов важности А. Сделаем это в столбце : в ячейку
продублируем значение ячейки
, в ячейку
запишем формулу
и растянем её вниз. Теперь ищем строку, значение которой примерно равно объему свободного пространства. Последний вмещаемый файл лежит в строке 2062. Это будет первый перенос. Оставшееся место для файлов В равно 753.
Приступим ко второму переносу. Действуем аналогично и считаем объем оставшихся файлов А. Для этого в ячейку поместим значение ячейки
. Все оставшиеся файлы типа А смогут быть перенесены, поэтому количество переносов равно 2. Оставшееся место для переносов файлов В во втором заходе равно 770096.
Просуммируем значения столбца В и найдём строку, где сумма примерно равна 753, для того, чтобы вместить их в первый перенос. Это будет строка 2292 и таких файлов В — 57. В ячейку помещаем значение ячейки
и снова считаем объем файлов В. Ищем число, близкое к 770096. Оно стоит в строке 4070 и равно 769816. Значит, количество файлов, вмещаемых во второй перенос равно 1778. Общее количество файлов типа В —
.