В морском порту готовятся к перевозке грузов разной массы и формы, для
Условие
В морском порту готовятся к перевозке грузов разной массы и формы, для этого каждый груз помещают в отдельный контейнер. Контейнеры имеют разную грузоподъемность (некоторые контейнеры могут иметь одинаковую грузоподъёмность). Из-за компьютерного сбоя из общего количества контейнеров для перевозки выделили первые попавшиеся контейнеры. Напишите программу, которая поможет посчитать максимальное количество грузов, которое можно отправить в выделенных контейнерах, и максимальную массу одного отправленного груза.
Формат входных данных:В первой строке входного файла находится число N — количество грузов, совпадающее с выделенным количеством контейнеров (натуральное число, не превышающее 20 000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 100 000: массу груза и максимальную грузоподъёмность контейнера.
Формат выходных данных:Два целых неотрицательных числа: максимальное количество грузов, которое можно отправить в выделенных контейнерах и максимальную массу одного отправленного груза.
Входные данные.
Задание 26В первой строке входного файла находится число N — количество грузов и количество контейнеров на складе (натуральное число, не превышающее 20 000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 100 000: массу груза и максимальную массу груза, который можно поместить в контейнер.
Выходные данныеДва целых неотрицательных числа: максимальное число грузов и максимальную массу груза.
Типовой пример организации входных данных:710 5020 6070 2040 2050 1010 1020 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 = 0j = 0maxg = 0while i < n: if g[i]<=k[j]: maxg = max(maxg, g[j]) i += 1 j += 1 else: i += 1print(j,maxg)
Осталось ещё 1 шаг
Приведём решение Юрия Красильникова на языке…
Бесплатно · займёт минуту