Доброго времени суток, господа. Столкнулся с такой задачей:
Михаил Владимирович, суровый преподаватель факультета прикладной магии и иллюзии Байтландского Государственного университета задал студентам лабораторную работу, состоящую из задач на различные темы. Общее кол-во тем равно
, и они пронумерованы от 1 до
в некотором порядке, при этом на i-ю тему Михаил Владимирович задал
задач. Поскольку задачи выданы всем одинаковые, студенты решили объединить усилия. Обычный студент может решить одну задачу на любую тему за один день. К счастью для студентов, среди них присутствует 10-классник Гена, посещающий занятия ради любопытства. Гена способен решить до
задач включительно за день, однако задачи Михаила Владимировича настолько суровы, что даже Гена не может решать задачи на разные темы в один и тот же день. Всего у Михаила Владимировича учится
студентов. Помогите студентам и школьнику Гене так распределить обязанности, чтобы решить все задачи за наименьшее кол-во дней.
Формат входных данных:
,
,
,
.
ограничение по времени - 2 секунды, ограничение по памяти - 256 Мб.
Я решил использовать бинарный поиск по ответу, но не понимаю, как можно быстро отвечать на вопрос: "Можно ли решить все задачи за x дней?". По факту, у нас есть как бы
квадратиков размера 1 на 1 и
прямоугольников размера 1 на
, и надо ими покрыть все прямоугольники, соответствующие каждой теме. Дальше идей нет. Прошу помощи