Задачи для программирования можно как найти в каком-нибудь учебнике, так и придумать самому. Иногда придуманная задача может вытекать из уже существующей. Решая очередную задачу на проекте Эйлера наткнулся на вопрос, связанный со спиральной матрицей. Для того, чтобы прийти к ответу строить её оказалось необязательно, поэтому результат нашёл и пошёл решать следующую. Но недавно написал друг с одним коротким вопросом "как сгенерировать матрицу по спирали?" И я задумался, а почему бы не придумать алгоритм, вроде интересная задача...
Не так много задач на динамическое программирование разобрано на канале, давайте исправляться. Условие: Разнообразные входные данные, но ограничения не очень большие. Должна легко решать на языке Python. Так как олимпиада должна помещаться в один месяц, а размер месяца всего лишь до 100000, то можно завести массив такого размера и пометить все дни, в которые проводить олимпиаду нельзя. Давайте так и сделаем. Считывание первого блока входных данных очень простое: После этого идёт список еженедельных выходных, заданных номерами дней недели...