Sleepwalker
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Excell кхм... решение осталось дома на листочке.. сам понимаешь, набирать, тем более код - особо некогда... вот некоторые наброски, в принципе, покрываающие бОльшую часть вариантов. Для начала выводишь формулу подсчета количества штучек в зависимости от дня. Это не сложно: M=(СУММ от 1 до k)((D-Bk)/Tk)+1 знака суммы тут нету, к сожалению на эту формулу будем опираться потом.. затем отбрасываем "лишние" штуки. Начиная с самой поздей, вычисляем число деталей в день ее производства. Если оно больше, чем М - вычитаем наименьший период и проверяем. Если снова большей - отбрасываем эту деталь (проще говоря, к моменту начала ее производста уже будет достигнуто М) Далее... вычисляем НОК от всех оставшихся периодов (как - я думаю, знаешь, раз взялся за олимпиадные задачи). Мы получим число деталей, производимых за этот мега-период, тем самым РЕЗКО сузив границы перебора... вот здесь и возникает проблема, если периоды будут большие, но с ма-а-а-аленькой разницей между др. др. Ну а далее... если число периодов больше одного - вычитаем из М число штук на начало периода - и снова применяем описанный алгоритм, соответсвующим образом, ессно, меня стартовые дни... (кстати, вариант рекурсии пришел на ум только что вот в принципе и все... конечно, можно придумать такое задание (а обычно комиссии это умеют), которое основательно нагрузит прогу. и еще проблема в размерности.. если я правильно прочитал, то B и T имеют предел 2в109 ? не буду говорить, что на Земле от сотворения мира еще столько времение не прошло
---------- ...или я ничего не понимаю в этой жизни... или понимаю слишком хорошо... |
|