На кольцевой автодороге с двусторонним движением находится N многоэтажных жилых домов (не более одного дома на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Жители домов ежедневно заказывают доставку продуктов. Каждый магазин упаковывает продукты в пакеты, каждый из которых вмещает не более 158 кг. Каждый пакет используется для доставки почты только в один жилой дом, при этом для каждого дома берется минимально возможное количество пакетов. Известно, что курьеру хватает топлива не более чем на M км, заправка для обратного пути до магазина не учитывается. Магазин открыли в одном из домов таким образом, чтобы количество доставляемых пакетов с продуктами было максимальным.
Определите необходимое количество доставочных пакетов в этом магазине.
Входные данные
Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит три числа N, K и M число N -– количество жилых домов, длина кольцевой дороги в километрах и максимальное расстояние, на которое курьер может осуществлять доставку. В каждой из следующих N строк находится два числа: номер километра кольцевой автодороги, на котором расположен жилой дом, и вес пакета (все числа натуральные, вес продуктов для каждого дома не превышает 500 кг). Числа указаны в порядке расположения домов на автодороге.
В ответе укажите два числа через пробел: сначала значение искомой величины для файла А, затем – для файла В.
f = open(’273B.txt’)
n,k,m = map(int,f.readline().split())
a = []
for i in f:
km,weight = map(int,i.split())
count_packet = weight//158 if weight % 158 == 0 else weight // 158 + 1
a.append([km%k,count_packet])
b = [0]*k
for i in range(n):
km,count_packet = a[i]
b[km] = count_packet
b = b*2
mx = s = sum(b[:2*m+1])
for i in range(m+1,k+m):
s = s - b[i-m-1]+b[i+m]
if b[i] > 0:
mx = max(mx,s)
print(mx)