Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with open("26-71.txt") as file:
- n, s = map(int, file.readline().split())
- a = []
- for row in file:
- t, v = map(int, row.split())
- a.append( (t, v) ) # tuple(t, v)
- a.sort()
- # a[i][0] - тип, a[i][1] - вес
- """
- Идея:
- Проходим по парам и для всех товаров одного типа считаем количество,
- которое поместится (<= s) и сумма оставшихся
- """
- types = set()
- for i in range(len(a)):
- t, v = a[i]
- types.add(t) # добавить в set
- total_k = 0 # сколько всего товаров остается на складе
- mx_k = 0 # максимальное количество товаров одного типа, которое остается
- code = 0 # тип товара с максимальным количеством
- # для каждого типа найти количество, которое берем и сумму оставшихся
- for j in types:
- sum_t = 0 # сумма товаров типа t, которые можем взять (<=s)
- k_t = 0 # количество товаров типа t, которые не можем взять
- for i in range(len(a)):
- t, v = a[i]
- if t == j: # только товары типа j
- if sum_t + v <= s:
- sum_t += v
- else:
- k_t += 1
- total_k += k_t # сумма количества товаров, которые не берем
- if k_t > mx_k:
- code = j # тип товара с наибольшим остатком
- mx_k = k_t
- print(total_k, code)
Advertisement
Add Comment
Please, Sign In to add comment