Ошибка.
Попробуйте повторить позже
В магазине для упаковки подарков есть кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т.д. Одну коробку можно поместить в другую, если длина её стороны хотя бы на единицы меньше длины стороны другой коробки. Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой коробки, где будет находиться подарок. Размер подарка позволяет поместить его в самую маленькую коробку.
Входные данные
В первой строке входного файла находится число – количество коробок в магазине (натуральное число, не превышающее ). В следующих строках находятся значения длин сторон коробок (все числа натуральные, не превышающие ), каждое – в отдельной строке. Запишите в ответе два целых числа: сначала наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.
Типовой пример организации данных во входном файле
Пример входного файла приведён для пяти коробок и случая, когда минимальная допустимая разница между длинами сторон коробок, подходящих для упаковки «матрёшкой», составляет единицы. При таких исходных данных условию задачи удовлетворяют наборы коробок с длинами сторон и или и соответственно, т.е. количество коробок равно , а длина стороны самой маленькой коробки равна .
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значение количества коробок в магазине куда-нибудь, где оно нам не помешает. Сортируем числа
столбца по убыванию. Выделим полностью столбец , перейдём в раздел Данные и нажимаем на инструмент Удалить
дубликаты, в появившемся окне выбираем Выделить все и нажимаем ОК (это удалит коробки, которые были по записаны
несколько раз). Запишем для первых ячеек максимальный размер подарка, который закончится на данной коробке. В
ячейку запишем формулу =МАКС(ЕСЛИ(A3-A4>=3;B3+1;1);ЕСЛИ(A2-A4>=3;B2+1;1);ЕСЛИ(A1-A4>=3;B1+1;1)),
скопируем её на все свободные клеточки этого столбца. Находим маскимальное значение в столбце . Выписываем в ответ
наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально
возможную длину стороны самой маленькой коробки в таком наборе.
Решение 2 (Python)
f = open(’Задание 26.txt’) n = int(f.readline()) a=[int(x) for x in f.readlines()] a.sort(reverse=True) gift = [a[0]] for i in range(n): if gift[-1] - a[i] >= 3: gift.append(a[i]) print(len(gift), gift[-1])
Ошибка.
Попробуйте повторить позже
Источник: КЕГЭ2022
В магазине для упаковки подарков есть кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т.д. Одну коробку можно поместить в другую, если длина её стороны хотя бы на 3 единицы меньше длины стороны другой коробки. Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой коробки, где будет находиться подарок. Размер подарка позволяет поместить его в самую маленькую коробку.
Входные данные
В первой строке входного файла находится число N – количество коробок в магазине (натуральное число, не превышающее 10 000). В следующих N строках находятся значения длин сторон коробок (все числа натуральные, не превышающие 10 000), каждое – в отдельной строке. Запишите в ответе два целых числа: сначала наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.
Типовой пример организации данных во входном файле
5
43
40
32
40
30
Пример входного файла приведён для пяти коробок и случая, когда минимальная допустимая разница между длинами сторон коробок, подходящих для упаковки «матрёшкой», составляет 3 единицы. При таких исходных данных условию задачи удовлетворяют наборы коробок с длинами сторон 30, 40 и 43 или 32, 40 и 43 соответственно, т.е. количество коробок равно 3, а длина стороны самой маленькой коробки равна 32.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значение количества коробок в магазине куда-нибудь, где оно нам не помешает. Сортируем числа
столбца по убыванию. Выделим полностью столбец , перейдём в раздел Данные и нажимаем на инструмент Удалить
дубликаты, в появившемся окне выбираем Выделить все и нажимаем ОК (это удалит коробки, которые были по записаны
несколько раз). Запишем для первых ячеек максимальный размер подарка, который закончится на данной коробке. В
ячейку запишем формулу =МАКС(ЕСЛИ(A3-A4>=3;B3+1;1);ЕСЛИ(A2-A4>=3;B2+1;1);ЕСЛИ(A1-A4>=3;B1+1;1)),
скопируем её на все свободные клеточки этого столбца. Находим маскимальное значение в столбце . Выписываем в ответ
наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально
возможную длину стороны самой маленькой коробки в таком наборе.
Решение 2 (Python)
f = open(’Задание 26.txt’) n = int(f.readline()) a=[int(x) for x in f.readlines()] a.sort(reverse=True) gift = [a[0]] for i in range(n): if gift[-1] - a[i] >= 3: gift.append(a[i]) print(len(gift), gift[-1])
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
В магазине для упаковки подарков есть N кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т.д. Одну коробку можно поместить в другую, если длина её стороны хотя бы на единиц меньше длины стороны другой коробки. Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой коробки, где будет находиться подарок. Размер подарка позволяет поместить его в самую маленькую коробку.
Входные данные
В первой строке входного файла находится число N – количество коробок в магазине (натуральное число, не превышающее ). В следующих N строках находятся значения длин сторон коробок (все числа натуральные, не превышающие ), каждое – в отдельной строке.
Запишите в ответе два целых числа: сначала наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.
Пример организации данных во входном файле
Пример входного файла приведён для пяти коробок и случая, когда минимальная допустимая разница между длинами сторон коробок, подходящих для упаковки «матрёшкой», составляет единицы.
При таких исходных данных условию задачи удовлетворяют наборы коробок с длинами сторон , и или , и соответственно, т.е. количество коробок равно , а длина стороны самой маленькой коробки равна .
f = open(’26.txt’) n = int(f.readline()) a = sorted([int(s) for s in f], reverse=True) ans = 1 x = a[0] minim = ’’ for i in range(1, len(a)): if (x - a[i]) >= 5: ans += 1 x = a[i] print(ans, x)
Ошибка.
Попробуйте повторить позже
На складе требуется разместить контейнеров различного размера, каждый из которых имеет форму куба. Контейнеры имеют разные цвета, которые обозначаются латинскими буквами. Чтобы сэкономить место, контейнеры вкладывают друг в друга. Один контейнер можно вложить в другой, если выполнены следующие условия:
а) размер стороны внешнего контейнера превышает размер стороны внутреннего на и более условных единиц
б) цвета внешнего и внутреннего контейнеров различны. Группу вложенных друг в друга контейнеров называют блоком. Количество контейнеров в блоке может быть любым.
Каждый блок, независимо от количества и размера входящих в него контейнеров, а также каждый одиночный контейнер, не входящий в блоки, занимает при хранении одну складскую ячейку.
Определите минимальное количество ячеек, которые потребуются для хранения всех контейнеров, и максимальное количество контейнеров в одном блоке.
Входные данные:
В первой строке входного файла записано натуральное число – количество контейнеров, натуральное число – наименьшая допустимая разница размеров вложенных соседних контейнеров
Каждая из следующих строк содержит натуральное число, не превышающее – длину стороны очередного контейнера, и латинскую букву, обозначающую цвет этого контейнера.
Пример:
Для такого набора контейнеров можно составить два блока, удовлетворяющих условию: , . Наибольшее количество контейнеров – в первом блоке – . Ответ: .
n, k = map(int, input().split()) all = [] for i in range(n): num, color = input().split() all.append([int(num), color]) all = sorted(all)[::-1] ans = [] while True: if all[0][0] == 0: break # [длина, цвет] chain = [ all[0] ] all.pop(0) all.append([0, 0]) i = 0 while i < len(all): if all[i][0] == 0: break if all[i][1] != chain[-1][1]: if chain[-1][0] - all[i][0] >= k: chain.append(all[i]) all.pop(i) all.append([0, 0]) i -= 1 i += 1 ans.append(chain) print(len(ans), max( [len(x) for x in ans ] ))
Ошибка.
Попробуйте повторить позже
На складе требуется разместить контейнеров различного размера, каждый из которых имеет форму куба. Чтобы сэкономить место, контейнеры вкладывают друг в друга. Один контейнер можно вложить в другой, если размер стороны внешнего контейнера превышает размер стороны внутреннего на и более условных единиц.
Группу вложенных друг в друга контейнеров называют блоком. Количество контейнеров в блоке может быть любым. Каждый блок, независимо от количества и размера входящих в него контейнеров, а также каждый одиночный контейнер, не входящий в блоки, занимает при хранении одну складскую ячейку.
Определите минимальное количество ячеек, которые потребуются для хранения всех контейнеров, и максимальное количество контейнеров в одном блоке.
Входные данные:
В первой строке входного файла записано число – количество контейнеров (натуральное число, не превышающее ) и число – наименьшая допустимая разница размеров вложенных соседних контейнеров. Каждая из следующих строк содержит одно натуральное число, не превышающее – длину стороны очередного контейнера.
Пример:
Для таких контейнеров можно составить три блока, удовлетворяющих условию: , и . Наибольшее количество контейнеров – в первом блоке – . Ответ: .
n, k = map(int, input().split()) all = [] for i in range(n): num = int(input()) all.append(num) all = sorted(all)[::-1] ans = [] while True: if all[0] == 0: break # [длина, цвет] chain = [ all[0] ] all.pop(0) all.append(0) i = 0 while i < len(all): if all[i] == 0: break if chain[-1] - all[i] >= k: chain.append(all[i]) all.pop(i) all.append(0) i -= 1 i += 1 ans.append(chain) print(len(ans), max( [len(x) for x in ans ] ))
Ошибка.
Попробуйте повторить позже
Транспортная компания владеет автомобилями с грузоподъемность . Для транспортировки грузов автомобили загружают предметами по убыванию веса, пока общая масса предметов не превышает грузоподъемность . И далее процедуру повторяют для другого грузовика, до тех пор, пока все предметы не будут погружены.
Нужно определить количество автомобилей для транспортировки всех предметов и общую загрузку предпоследнего автомобиля.
Входные данные:
В первой строке записаны два числа – количество грузов и грузоподъёмность автомобиля . В каждой из следующих строк записано по одному натуральному числу, обозначающему вес груза.
Пример:
В первый автомобиль будут погружены грузы весом , и , во второй – грузы весом . Ответ:
n, m = map(int, input().split()) all = [] for i in range(n): num = int(input()) all.append(num) all = sorted(all)[::-1] ans = [] while True: if all[0] == 0: break # [длина, цвет] chain = [ all[0] ] all.pop(0) all.append(0) i = 0 while i < len(all): if all[i] == 0: break if sum(chain) + all[i] <= m: chain.append(all[i]) all.pop(i) all.append(0) i -= 1 i += 1 ans.append(chain) print(len(ans), sum(ans[-2]) )
Ошибка.
Попробуйте повторить позже
В магазине для упаковки подарков есть кубических коробок и декоративных замочков к ним Самой интересной считается упаковка подарка по принципу матрёшки - подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т. д., при этом к каждой коробке подбирается подходящий замочек. Одну коробку можно поместить в другую, если длина её стороны хотя бы на единиц меньше длины стороны другой коробки. Замочек подходит к коробке, если маркировка замочка совпадает с длиной стороны коробки. Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой коробки, где будет находиться подарок. Размер подарка позволяет поместить его в самую маленькую коробку.
Входные данные
В первой строке входного файла находятся число - количество коробок в магазине (натуральное число, не превышающее ) и через пробел число - количество декоративных замочков в магазине (натуральное число, не превышающее ).
В следующих строках находятся значения длин сторон коробок (все числа натуральные, не превышающие ) и через знак табуляции значения, указанные как маркировки на замочках (все числа натуральные, не превышающие ), каждая пара таких значений - в отдельной строке; в последних строках второе число, соответствующее маркировке замочка, опускается, и числа, соответствующие длинам сторон коробок, идут каждое в отдельной строке.
Запишите в ответе два целых числа: сначала наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.
Типовой пример организации данных во входном файле
Пример входного файла приведён для случая пяти коробок и четырёх замочков, когда минимальная допустимая разница между длинами сторон коробок, подходящих для упаковки "матрёшкой составляет единицы.
При таких исходных данных условию задачи удовлетворяют набор коробок с длинами сторон , и или , и или , и соответственно, т.е. количество коробок равно , а длина стороны самой маленькой коробки равна (поскольку замочка для коробки с длиной стороны в магазине нет).
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
f = open(’26.txt’) n, m = map(int, f.readline().split()) length = [] locks = set() for i in range(m): x, y = map(int, f.readline().split()) length.append(x) locks.add(y) for i in range(n - m): x = int(f.readline()) length.append(x) length = sorted([i for i in length if i in locks], reverse=True) ans = 1 x = length[0] for i in range(1, len(length)): if (x - length[i]) >= 6: ans += 1 x = length[i] print(ans, x)