27.02 Мусорки, кольцевая дорога
Ошибка.
Попробуйте повторить позже
На кольцевой автодороге с двусторонним движением находится многоэтажных жилых домов (не более одного дома на каждом километре дороги). Длина кольцевой автодороги равна км. Нулевой километр и -й километр находятся в одной точке. Жители домов ежедневно получают почту, которую доставляют роботы-почтальоны. Почта упакована в доставочные пакеты, каждый из которых вмещает не более кг посылок или писем. Каждый доставочный пакет используется для доставки почты только в один жилой дом, при этом в каждый дом может быть доставлено не более одного пакета с неполной загрузкой. Известно, что заряд аккумулятора робота-почтальона позволяет ему проходить не более км, заряд аккумулятора для возвращения робота в почтовое отделение не учитывается. Почтовое отделение открыли в одном из домов таким образом, чтобы количество доставляемых пакетов с корреспонденцией было максимальным. Почта в те дома, которые находятся на расстоянии более от почтового отделения, не доставляется. Определите необходимое количество доставочных пакетов в этом почтовом отделении.
Входные данные:
В первой строке стоят числа и — количество жилых домов, длина кольцевой автодороги в километрах и максимальное расстояние, на которое робот может осуществлять доставку почтовых отправлений.
В каждой из следующих строк находятся два числа: номер километра кольцевой автодороги, на котором расположен жилой дом, и вес ежедневной корреспонденции (все числа натуральные, вес писем и посылок для каждого дома не превышает 1000 кг). Данные указаны в порядке расположения домов на автодороге.
Пример входных данных:
При таких исходных данных оптимальное расположение почтового отделения – в доме с номером 3. В этом случае количество пакетов для доставки корреспонденции составит: 3 (для дома 1) + 3 (для дома 3) + 2 (для дома 5) = 8. В дома 7 и 9 почту доставить не удаётся.
В ответе укажите два числа: сначала искомое значение для файла , затем для файла .
f = open(’27b.txt’) n, k, v, m = list(map(int, f.readline().split())) a = [0] * k for i in range(n): kilometer_num, pochta = list(map(int, f.readline().split())) a[kilometer_num % k] = pochta // v + (pochta % v > 0) min_s = sum(a) if m < (k + 1) // 2 - 1: c = sum(a[:m*2 + 1]) if a[m]: min_s = c else: min_s = 0 for i in range(1, k): c += a[(i + m * 2) % k] - a[i - 1] if a[(i + m) % k]: min_s = max(min_s, c) print(min_s)
Специальные программы
Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!
Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.
Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.
Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».
Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!
Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!