Задача похожа на задачу о рюкзаке, но немного отличается.
Имеется большое количество файлов (допустим, 500) - все разного объема, от 10мб до 5гб (но файлов до 100мб намного меньше). Количество файлов и их объемы заранее известны. Также имеется неограниченное (неограниченное, потому что количество не важно) количество флешек объемом 8Gb. Задача - как можно компактнее разместить все файлы на как можно меньшем количестве флешек. Не важно, как будут мешаться между собой файлы. Главное - чтобы на каждую флешку файлы записывались таким образом, чтобы на ней оставалось как можно меньше свободного (неэффективно используемого) места.
И, заполняя одну флешку, нужно учитывать, что далее будут заполняться и другие флешки. И, возможно, какой-то из файлов будет лучше записать на другой носитель, чтобы эффективнее его заполнить.
Вот такой алгоритм мне нужно реализовать. У вас прошу только подсказать уже существующий алгоритм (если что-то подобное уже существует) или слегка направить на правильный путь, указав, на что следует обратить внимание при написании своего алгоритма с нуля