Обработка целочисленной информации. Задания для подготовки
i
В кондитерской есть N круглых форм для коржей. Специализация кондитерской — многоярусные торты, в которых диаметр каждого верхнего коржа меньше диаметра предыдущего. Один корж можно поместить на другой, если его диаметр хотя бы на 4 единицы меньше диаметра другого коржа. Определите наибольшее количество коржей, которое можно использовать для создания многоярусного торта, и максимально возможный диаметр самого маленького коржа.
В первой строке входного файла находится число N — количество форм для коржей в кондитерской (натуральное число, не превышающее 10 000). В следующих N строках находятся значения диаметров форм для коржей (все числа натуральные, не превышающие 10 000), каждое — в отдельной строке. Диаметр формы равен диаметру коржа, который выпекается в этой в форме. Запишите в ответе два целых числа: сначала наибольшее количество коржей, которое можно использовать для создания одного многоярусного торта, затем — максимально возможный диаметр самого маленького коржа в таком торте.
Типовой пример организации данных во входном файле:
5
43
40
32
40
30
Пример входного файла приведён для пяти коржей и случая, когда минимальная допустимая разница между диаметрами коржей, подходящих для изготовления многоярусного торта, составляет 3 единицы.
При таких исходных данных условию задачи удовлетворяют наборы коржей с диаметрами 30, 40 и 43 или 32, 40 и 43 соответственно, то есть количество коржей равно 3, а максимально возможный диаметр самого маленького коржа равен 32.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
Ответ:
Решение. Приведем решение на языке Python.
f = open('1_26.txt')
n = int(f.readline())
a = [int(i) for i in f]
a.sort(reverse = True)
count = 1
diametr = a[0]
for i in range(1,len(a)):
if diametr - a[i] >= 4:
count += 1
diametr = a[i]
print(count,diametr)
Ответ: 2172 50.
Приведем решение Артёма Гридина на языке Python.
s = tuple(map(int, open('1_26.txt').read().splitlines()))