В морском порту готовятся к перевозке грузов разной массы и формы, для этого каждый груз помещают в отдельный контейнер. Контейнеры имеют разную грузоподъемность (некоторые контейнеры могут иметь одинаковую грузоподъёмность). Из-за компьютерного сбоя из общего количества контейнеров для перевозки выделили первые попавшиеся контейнеры. Напишите программу, которая поможет посчитать максимальное количество грузов, которое можно отправить в выделенных контейнерах, и максимальную массу одного отправленного груза.
Формат входных данных:
В первой строке входного файла находится число N — количество грузов, совпадающее с выделенным количеством контейнеров (натуральное число, не превышающее 20 000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 100 000: массу груза и максимальную грузоподъёмность контейнера.
Формат выходных данных:
Два целых неотрицательных числа: максимальное количество грузов, которое можно отправить в выделенных контейнерах и максимальную массу одного отправленного груза.
Входные данные.
Задание 26
В первой строке входного файла находится число N — количество грузов и количество контейнеров на складе (натуральное число, не превышающее 20 000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 100 000: массу груза и максимальную массу груза, который можно поместить в контейнер.
Выходные данные
Два целых неотрицательных числа: максимальное число грузов и максимальную массу груза.
Типовой пример организации входных данных:
7
10 50
20 60
70 20
40 20
50 10
10 10
20 15
Для приведённого примера ответом является пара чисел: 6; 50.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
Ответ:
Формат входных данных:
В первой строке входного файла находится число N — количество грузов, совпадающее с выделенным количеством контейнеров (натуральное число, не превышающее 20 000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 100 000: массу груза и максимальную грузоподъёмность контейнера.
Формат выходных данных:
Два целых неотрицательных числа: максимальное количество грузов, которое можно отправить в выделенных контейнерах и максимальную массу одного отправленного груза.
Входные данные.
Задание 26
В первой строке входного файла находится число N — количество грузов и количество контейнеров на складе (натуральное число, не превышающее 20 000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 100 000: массу груза и максимальную массу груза, который можно поместить в контейнер.
Выходные данные
Два целых неотрицательных числа: максимальное число грузов и максимальную массу груза.
Типовой пример организации входных данных:
7
10 50
20 60
70 20
40 20
50 10
10 10
20 15
Для приведённого примера ответом является пара чисел: 6; 50.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
Ответ:
💡 Пошаговый разбор и решение:
Приведём решение на языке Python.
f = open("26_59822.txt")
s = f.readlines()
n = int(s[0])
g = []
k = []
for i in range(1,n+1):
a, b = map(int,s[i].split())
g.append(a)
k.append(b)
g.sort(reverse=True)
k.sort(reverse=True)
i = 0
j = 0
maxg = 0
while i Ответ: 18456 99999.
Приведём решение Юрия Красильникова на языке Python.
gk = [list(map(int,s.split())) for s in open('26_59822.txt')][1:]
g = sorted(x[0] for x in gk) # грузы
k = sorted(x[1] for x in gk) # контейнеры
p = [] # отправленные грузы
while g and k: # пока есть грузы и контейнеры
while g and g[-1] > k[-1]: g.pop() # удаляем грузы тяжелее грузоподъемности последнего контейнера
if g: # если есть ещё груз
p.append(g.pop()) # добавляем груз в список отправленных
k.pop() # удаляем использованный контейнер
print(len(p),max(p))
f = open("26_59822.txt")
s = f.readlines()
n = int(s[0])
g = []
k = []
for i in range(1,n+1):
a, b = map(int,s[i].split())
g.append(a)
k.append(b)
g.sort(reverse=True)
k.sort(reverse=True)
i = 0
j = 0
maxg = 0
while i Ответ: 18456 99999.
Приведём решение Юрия Красильникова на языке Python.
gk = [list(map(int,s.split())) for s in open('26_59822.txt')][1:]
g = sorted(x[0] for x in gk) # грузы
k = sorted(x[1] for x in gk) # контейнеры
p = [] # отправленные грузы
while g and k: # пока есть грузы и контейнеры
while g and g[-1] > k[-1]: g.pop() # удаляем грузы тяжелее грузоподъемности последнего контейнера
if g: # если есть ещё груз
p.append(g.pop()) # добавляем груз в список отправленных
k.pop() # удаляем использованный контейнер
print(len(p),max(p))
Правильный ответ:
18456& 99999
📚 Похожие разобранные задания по предмету:
ID 33951 • Задание №23
У исполнителя Калькулятор две команды:
1. умножь на 2
2. умножь на 3.
Первая из них умножает число на экра...
ID 31584 • Задание №11
Двухканальная (стерео) звукозапись с частотой дискретизации 16 кГц и 24 битным разрешением велась в течение 15...
🔗 Другие задания линии №26 по предмету Информатика:
ID 34439
Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска,...
ID 34440
Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска,...
ID 34441
Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска,...
ID 34442
Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска,...
ID 34443
Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска,...