Задание №4596.
Обработка целочисленной информации. ЕГЭ по информатике
Файл, необходимый для выполнения задания: ссылка для скачивания.В кондитерской есть
N круглых форм для коржей. Специализация кондитерской – многоярусные торты, в которых диаметр каждого верхнего коржа меньше диаметра предыдущего. Один корж можно поместить на другой, если его диаметр хотя бы на 4 единицы меньше диаметра другого коржа. Определите наибольшее количество коржей, которое можно использовать для создания многоярусного торта, и максимально возможный диаметр самого маленького коржа.
Входные данныеВ первой строке входного файла находится число
N – количество форм для коржей в кондитерской (натуральное число, не превышающее 10 000). В следующих
N строках находятся значения диаметров форм для коржей (все числа натуральные, не превышающие 10 000), каждое – в отдельной строке. Диаметр формы равен диаметру коржа, который выпекается в этой в форме.
Запишите в ответе два целых числа: сначала наибольшее количество коржей, которое можно использовать для создания одного многоярусного торта, затем – максимально возможный диаметр самого маленького коржа в таком торте.
Типовой пример организации данных во входном файле
5
43
40
32
40
30
Пример входного файла приведён для пяти коржей и случая, когда минимальная допустимая разница между диаметрами коржей, подходящих для изготовления многоярусного торта, составляет 3 единицы.
При таких исходных данных условию задачи удовлетворяют наборы коржей с диаметрами 30, 40 и 43 или 32, 40 и 43 соответственно, т.е. количество коржей равно 3, а максимально возможный диаметр самого маленького коржа равен 32.Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
Пояснение:
Решим задание, написав программу на языке программирования Python.
with open('input.txt') as data: data = sorted([(int(i)) for i in data.read().splitlines()[1:]],reverse=True) count_korzhes = current_korzh = 0 for x in range(len(data)): if x == 0: current_korzh = data[x] count_korzhes += 1 else: if current_korzh - data[x] >= 4: current_korzh = data[x] count_korzhes += 1 print(count_korzhes, current_korzh) |
Таким образом,
2172 — наибольшее количество коржей, которое можно использовать для создания одного многоярусного торта,
50 — максимально возможный диаметр самого маленького коржа в таком торте.
Показать ответ
2172 50
Источник: ФИПИ. Открытый банк тестовых заданий
Сообщить об ошибке
Тест с похожими заданиями