Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей на python олимпиада

павел дорохов Ученик (90), открыт 6 часов назад
Станцию метро закрыли на m дней на ремонтные работы. Вы отвечаете за организацию работ на станции.
Всего есть n запланированных работ, которые можно выполнить за отведённое время. По оцен- кам рабочих, i-я работа может занять любое количество дней от li до ri. Так как все работы тех- нически сложные и оценить их время выполнения очень непросто, гарантируется, что выполнено
li
Ваша задача составить план ремонта: выбрать какое-то подмножество работ для выполнения. А
чтобы вас не уволили за неэффективное распределение рабочих ресурсов, необходимо выполнить следующие условия:
• Вы должны гарантированно успеть завершить все работы за m дней. Другими словами, долж- новыполнятьсянеравенствоri1 +ri2 +...+rik ?m,вкоторомi1,i2,...,ik —индексыработ, выбранных вами для выполнения.
• Пусть после того, как выполнение всех работ будет завершено, останется ещё d дней до от- крытия станции. Тогда не должно существовать такой невыполненной j-й работы, которую гарантированно можно успеть выполнить за d дней. Формально, для всех j должно выпол- няться неравенство m − (li1 + li2 + ... + lik) < rj, в котором i1,i2,...,ik — индексы работ, выбранных вами для выполнения, а j — индекс не выбранной для выполнения работы.
Вы хотите узнать, сколько существует подмножеств работ, которые можно выбрать, чтобы вы- полнить оба этих условия. Так как ответ может быть достаточно большим, найдите его остаток при делении на 109 + 7.
0 ответов
Похожие вопросы