Вопрос 4 (25 баллов)

Даны n вещей, и массив weight[] длинной n содержащий в i-том элементе вес i-й вещи.

Ещё дан грузовик, с помощью которого мы хотим эти вещи перевезти. Однако, грузовик может отбыть только с грузом не меньше w1, и не больше w2 (данные значения).

Реализуйте следующую функцию, принимающую массив weight[], его величину n, и значения w1, w2, и возвращающую максимальное число вещей, которыми можно нагрузить грузовик (чья сумма весов укладывается в данные значения). Если нет ни одного возможного решения, следует вернуть -1. В случае если решение существует, оптимальное решение следует записать в массив sol[i], чей i-ый элемент будет содержать 1 если соответствующая вещь была погружена, 0 иначе.

Замечания:

    Ребуется использовать технику Backtracking так, как она была изучена в классе. Разрешается определять вспомогательные функции по надобности.


int load(int weight[], int n, int w1, int w2, int sol[])

{