Задача такая (несколько странная) - имеем n-е количество досок длинной 300см, под номерами. И n-е количество цифр, которые обозначают сантиметры, которые нужно напилить из досок, с минимальными отходами. Например, имеем 2 доски. Нужно напилить на отрезки длинной 120см, 80см, 20см, 50см, 50см, 40см. Правильнее всего первую доску распилить на 4 части (120, 80, 50, 50), а от второй отпилить куски 210 и 40. Пытаюсь придумать алгоритм, чтобы это делала программа... Help me plz!
отсортировать длины по убыванию, для каждой длины находить первую доску больше либо равную ей и отпиливать.
[vs] Сортируешь, после чего делаешь перебором с первого элемента сложение. Как только сумма выходит за рамки 300 - отнимаешь последний элемент и начинаешь считать вторую доску. Записываешь результат и на следующей иретации начинаешь уже со второго элемента (первый элемент уже идёт ко второй доске). И так пока подсчёт для первой доски не упрётся в поледний элемент. получишь массив вариантов из которых выбираешь самый менее отходный вариант. Ну а дальше можно уже думать как сделать его более эффективным и пробовать разные варианты перебора. ДУмаю стоит погуглить на предмет таких алгоритмов, кто-нить да уже придумал.