Задача о рюкзаке

2.Группа школьников собирается в поход и собирается закупить продукты. В магазине есть n типов продуктов, про каждый продукт известна его цена pi, вес wi и питательность ci Каждого типа продуктов можно купить неограниченное количество. Продукты складываются в рюкзак, который выдерживает вес не больше W. Общий бюджет, выделенный на продукты, равен P. Школьники хотят купить продукты с максимальной суммарной питательностью.Требуется написать программу, которая по заданному целому числу n (1 ≤ n ≤ 50), числам P и W (1 ≤ P, W ≤ 500), а также информации о продуктах находит максимальную суммарную питательность продуктов, которые можно взять в поход.

Мыслей на решение практически нет. В первом надо что то делать с циклами, а во втором с массивами, но я не понимаю. Решение первой задачи в приоритете. Буду рад любому совету) Заранее спасибо.