26.09 Прочие прототипы
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
На складе требуется разместить контейнеров различного размера, каждый из которых имеет форму куба.
Контейнеры имеют разные цвета, которые обозначаются латинскими буквами. Чтобы сэкономить место,
контейнеры вкладывают друг в друга. Один контейнер можно вложить в другой, если выполнены следующие
условия:
а) размер стороны внешнего контейнера превышает размер стороны внутреннего на K и более условных единиц
б) цвета внешнего и внутреннего контейнеров различны.
Группу вложенных друг в друга контейнеров называют блоком. В блок можно объединять до контейнеров
включительно. Каждый блок, а также каждый одиночный контейнер, не входящий в блоки, занимает при хранении одну
складскую ячейку. Блоки собирают по одному, начиная с самого большого контейнера. В него добавляют самый большой из
оставшихся, подходящий по размеру, и т. д.
Определите минимальное количество ячеек, которые потребуются для хранения всех контейнеров, и количество блоков, которые содержат максимально возможное число контейнеров.
Входные данные:
В первой строке входного файла записано натуральное число
– количество контейнеров,
натуральное число
– наименьшая допустимая разница размеров вложенных соседних
контейнеров и натуральное число
– наибольшее допустимое количество контейнеров в
блоке.
Каждая из следующих строк содержит натуральное число, не превышающее
– длину стороны очередного
контейнера, и латинскую букву, обозначающую цвет этого контейнера.
Пример:
Для такого набора контейнеров можно составить три блока, удовлетворяющих условию: ,
и
.
Количество блоков с максимальным количеством контейнеров –
. Ответ:
.
n, k, m = 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 if len(chain) == m: break ans.append(chain) print(len(ans), sum( [1 for x in ans if len(x) == m] ))
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
В магазине для упаковки подарков есть 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 видов пирожных, i-го вида на фабрике штук. Было принято решение отвезти
пирожные на продажу на ярмарку, но директор фабрики решил, что кондитерские изделия на ярмарочной витрине
должны быть выложены одинаковыми рядами, при этом пирожных каждого вида должно быть одинаковое количество.
Необязательно отвозить на ярмарку все виды пирожных, можно выбрать некоторые виды и взять одинаковое число
пирожных каждого выбранного вида.
Помогите директору отвезти на ярмарку наибольшее число пирожных — найдите, сколько видов пирожных и сколько пирожных каждого вида нужно отвезти на ярмарку.
Формат входных данных
Первая строка входных данных содержит число n — количество видов пирожных на фабрике, . Следующие
n строк содержат по одному числу
— количество пирожных i-го вида,
. Сумма всех значений
не
превосходит
.
Формат выходных данных
Программа должна вывести два целых числа. Первое число равно количеству видов пирожных, которые необходимо выбрать для ярмарки. Второе число равно количеству пирожных каждого выбранного вида, которые нужно отвезти на ярмарку.
Если возможных ответов несколько, выведите любой из них.
Пример:
3
4
10
7
Ответом для примера будет: 2 7.
Рассмотрим пример из условия. Имеется 3 вида пирожных количеством 4, 10 и 7 штук. Наилучшим вариантом будет взять по 7 пирожных второго и третьего вида.
n = int(input()) a = [int(input()) for i in range(n)] count = [0]*100000 for i in a: count[i] += 1 ans_s = 0 ans_k = 0 k = 0 for i in range(100000-1, -1, -1): k += count[i] if k * i > ans_k * ans_s: ans_k = k ans_s = i print(ans_k, ans_s)
Ошибка.
Попробуйте повторить позже
Источник: КЕГЭ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])
Ошибка.
Попробуйте повторить позже
В магазине для упаковки подарков есть кубических коробок. Самой интересной считается упаковка подарка по
принципу матрёшки – подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т.д. Одну коробку
можно поместить в другую, если длина её стороны хотя бы на
единицы меньше длины стороны другой коробки.
Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально
возможную длину стороны самой маленькой коробки, где будет находиться подарок. Размер подарка позволяет поместить
его в самую маленькую коробку.
Входные данные
В первой строке входного файла находится число – количество коробок в магазине (натуральное число, не
превышающее
). В следующих
строках находятся значения длин сторон коробок (все числа натуральные, не
превышающие
), каждое – в отдельной строке. Запишите в ответе два целых числа: сначала наибольшее количество
коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой
маленькой коробки в таком наборе.
Типовой пример организации данных во входном файле
Пример входного файла приведён для пяти коробок и случая, когда минимальная допустимая разница между
длинами сторон коробок, подходящих для упаковки «матрёшкой», составляет единицы. При таких исходных
данных условию задачи удовлетворяют наборы коробок с длинами сторон
и
или
и
соответственно, т.е. количество коробок равно
, а длина стороны самой маленькой коробки равна
.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значение количества коробок в магазине куда-нибудь, где оно нам не помешает. Сортируем числа
столбца по убыванию. Выделим полностью столбец
, перейдём в раздел Данные и нажимаем на инструмент Удалить
дубликаты, в появившемся окне выбираем Выделить все и нажимаем ОК (это удалит коробки, которые были по записаны
несколько раз). Запишем для первых ячеек максимальный размер подарка, который закончится на данной коробке. В
ячейку
запишем формулу =МАКС(ЕСЛИ(A3-A4>=3;B3+1;1);ЕСЛИ(A2-A4>=3;B2+1;1);ЕСЛИ(A1-A4>=3;B1+1;1)),
скопируем её на все свободные клеточки этого столбца. Находим маскимальное значение в столбце
. Выписываем в ответ
наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально
возможную длину стороны самой маленькой коробки в таком наборе.
Идея решения
Идея решения заключается в том, что мы сначала считаем данные из файла и затем отсортируем их по убыванию, для удобства в дальнейшем. Затем мы создадим список gift, в котором будем выстраивать подарки в виде матрешки, изначально добавив в него первый элемент из отсортированного списка. Затем напишем цикл, внутри которого мы будем проверять, что разница между последним добавленным подарком в gift и текущим рассматриваемым подарком больше или равна 3. В таком случае, мы можем положить этот подарок внутрь другого подарка и тогда добавляем этот подарок в список gift. В конце программы выводим len(gift) для получения количества подарков и последний элемент списка для того чтобы получить максимальный размер последнего подарка.
Решение 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): # Если разница между последним добавленным подарком в gift и текущим рассматриваемым подарком больше или равна 3 if gift[-1] - a[i] >= 3: # Добавляем подарок в матрёшку gift.append(a[i]) print(len(gift), gift[-1])
Ошибка.
Попробуйте повторить позже
На закупку товаров типов A, B, C, D и E выделена определённая сумма денег. Эти товары есть в продаже по различной
цене. Необходимо на выделенную сумму закупить как можно больше товаров пяти типов (по общему количеству). Если
можно разными способами купить максимальное количество пяти типов товаров, то нужно выбрать способ, при котором
будет закуплено как можно больше товаров типа A. Если при этих условиях есть несколько способов закупки, нужно
потратить как можно меньше денег. Определите, сколько будет закуплено товаров типа A и сколько денег останется.
Входные данные представлены в файле 5.txt следующим образом. Первая строка входного файла содержит два целых
числа: N – общее количество товаров и M – сумма выделенных на закупку денег (в рублях). Каждая из следующих N строк
содержит целое число (цена товара в рублях) и символ (латинская буква), определяющий тип товара. Все данные в строках
входного файла отделены одним пробелом.
Запишите в ответе два числа: сначала количество закупленных товаров типа A, затем оставшуюся неиспользованной сумму
денег. Пример входного файла:
6 110
40 E
50 A
50 D
30 C
20 B
10 A
В данном случае можно купить не более четырёх товаров, из них не более двух товаров типа A. Минимальная
цена такой покупки 100 рублей (покупаем товары 10 A, 20 B, 30 C, 50 A). Останется 0 рублей. Ответ: 2
0.
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значения количества товаров и суммы денег, где они нам не помешают (ячейки и
).
Сортируем числа по первому столбцу по возрастанию. Выбираем 95 элементов (их общая сумма меньше 100000,
то есть это максимальное количество товаров, которые мы сможем купить). Для удобства все элементы,
которые мы выбрали, перенесем в отдельный столбик (столбец
). Найдём разницу между суммой денег,
выделенной на закупку, и текущей суммы товаров (ячейка
). Будем убирать из текущей суммы (столбец
) товары типов
с максимальной стоимостью и добавлять ещё не выбранные товары типа А с
минимальной стоимостью до тех пор, пока наша сумма не превысит 100000 В ячейке
посчитаем общее
количество выбранные товаров типа А, в ячейке
- оставшуюся неиспользованную сумму денег. Запишем
ответ.
Ошибка.
Попробуйте повторить позже
Игорь Владимирович хранит на компьютере картинки и видео различного размера. Он хочет поместить как можно
больше картинок и видео на флеш-накопитель, объём которого равен Кбайт, причём так, чтобы не менее
чем половина его объёма была зарезервирована под видео. Определите максимальное количество файлов
(картинок и видео), которое Игорь Владимирович может сохранить на флеш-накопителе, и максимальный объём
сохранённого видео. Информационный объем каждой картинки не более
Кбайт, а объем видео – не менее
Кбайт.
Входные данные:
Входные данные представлены в файле следующим образом. В первой строке записаны два числа: — количество
всех изображений и видео,
— объём флеш-накопителя. В следующих
строках находятся значения объёмов
картинок и видео в Кбайтах.
Запишите в ответе два числа: сначала общее количество картинок и видео, которые могут быть сохранены, затем — максимально возможный объём сохранённой картинки или видео.
Пример входного файла:
Ответ для приведённого примера:
Решение 1 ( Excel / LibreOffice):
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значения количества изображений и видео и объема флеш-накопителя, где они нам не
помешают. Сортируем числа по возрастанию. В условии нам сказано, что файлы, объем которых меньше либо равен 50
Кбайт, являются изображениями, тогда остальные - видео. Перенесем все видео в другой столбик, например в . Не менее
половины объема памяти флеш-накопителя ОБЯЗАТЕЛЬНО должны занимать видео, значит, найдем половину всей
памяти нашей флешки и возьмем максимальное кол-во видео, чтобы ТОЧНО заполнить это место, перенес их в столбик
. Оставшееся место заполним изображениями, имеющими минимальный объем. Изображений больше нет, а место
осталось, значит, добавляем еще видео (для удобства перенесем их в столбик
). Теперь у нас осталось 376 КБ. А вдруг
можно получить больше? Проверим это, убрав последний элемент обратно в столбик
. Теперь сумма
размеров выбранных файлов равна 554207. Проверим, нет ли у нас в столбике
числа, максимально близкого
к 793 (555000-554207=793)? У нас есть число 793!!! Значит, переносим его в столбик
и считаем ответ.
Решение 2 (Python):
file = open("2.txt") lines = file.readlines() n, k = map(int, lines[0].split()) array = list(map(int, lines[1:])) array = sorted(array) images = 0 videos = 0 i = 0 while array[i] <= 50: i += 1 while videos + array[i] <= k // 2: videos += array[i] i += 1 videos += array[i] max_elem = array[i] for j in range(len(array)): if array[j] <= 50 and images + videos + array[j] <= k: images += array[j] i += 1 free_space = k - (images + videos) if free_space > max_elem: while free_space > 0: if free_space - array[i] < 0: break free_space -= array[i] max_elem = array[i] i += 1 if i >= len(array): break free_space += max_elem for j in range(len(array) - 1, i - 1, -1): print(array[j]) if array[j] <= free_space: max_elem = array[j] break print(i, max_elem)
Ошибка.
Попробуйте повторить позже
Источник: kpolyakov.spb.ru
Задание выполняется с использованием прилагаемых файлов
Компьютер был заражён вирусами. Супервирусами называются самые опасные вирусы, уровень опасности которых превышает средний уровень опасности всех имеющихся. Нужно определить, какое максимальное количество вирусов можно удалить за заданное время по следующим правилам: - необходимо удалить как можно больше супервирусов; - нельзя удалять два и более супервируса подряд; - нельзя удалять супервирус последним.
Входные данные
Первая строка входного файла содержит количество записей и общее время
, отведённое на удаление этих
вирусов. Каждая из следующих
строк содержит два целых числа: уровень опасности вируса и время, которое требуется
для его удаления.
Выходные данные
Запишите в ответе два числа: сначала общее количество вирусов, которое удалось удалить, затем суммарное время, которое было затрачено на удаление супервирусов.
Пример организации исходных данных во входном файле:
Средний уровень опасности равен , значит, суперопасными считаются вирусы с уровнем опасности >=
. Удаляем
сначала супервирус
, далее обычный вирус
, потом снова суперопасный
, затем обычный
.
Обычных вирусов не осталось, значит, суперопасные тоже удалять нельзя. Итого удалено
вируса. На удаление
супервирусов затрачено времени
. Ответ:
.
Решение 1 ( Excel / LibreOffice):
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значения количества записей и общее время, отведенное на удаление вирусов, куда-нибудь, где они
нам не помешают. Найдем средний уровень опасности вирусов - =СРЗНАЧ(A1:A10000). Суперопасными считаются
вирусы с уровнем опасности >= 4983. Для удобства все супервирусы, которые мы выбрали, перенесем в
отдельный столбик (столбец C). Удалим столбцы, характеризующие уровень опасности вирусов. Сортируем
получившиеся столбцы по возрастанию и начинаем набирать сумму, пока она меньше, чем время, отведенное на
удаление. Максимальная сумма, которую мы можем собрать, чтобы не превысить отведенное время, - это
9993559. Однако,осталось 6441, значит мы можем удалить еще один вирус. Выходит, что мы можем удалить
4499 вирусов (2250 вирусов и 2249 супервирусов), время затраченное на удаление супервирусов - 5005489.
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов Источник: kpolyakov.spb.ru
Компьютер был заражён вирусами. Супервирусами называются самые опасные вирусы, уровень опасности которых превышает средний уровень опасности всех имеющихся. Нужно определить, какое максимальное количество вирусов можно удалить за заданное время по следующим правилам: - необходимо удалить как можно больше супервирусов; - нельзя удалять два и более супервируса подряд; - нельзя удалять супервирус последним.
Входные данные
Первая строка входного файла содержит количество записей N и общее время T, отведённое на удаление этих вирусов. Каждая из следующих N строк содержит два целых числа: уровень опасности вируса и время, которое требуется для его удаления.
Выходные данные
Запишите в ответе два числа: сначала общее количество вирусов, которое удалось удалить, затем суммарное время, которое было затрачено на удаление супервирусов.
Пример организации исходных данных во входном файле:
5 50
7 13
9 20
4 3
8 9
5 5
Средний уровень опасности равен 6.6, значит, суперопасными считаются вирусы с уровнем опасности >= 7. Удаляем сначала супервирус 8-9, далее обычный вирус 4-3, потом снова суперопасный 7-13, затем обычный 5-5. Обычных вирусов не осталось, значит, суперопасные тоже удалять нельзя. Итого удалено 4 вируса. На удаление супервирусов затрачено времени 9 + 13 = 22. Ответ: 4 22.
Решение 1 ( Excel / LibreOffice):
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значения количества записей и общее время, отведенное на удаление вирусов, куда-нибудь, где они
нам не помешают. Найдем средний уровень опасности вирусов - =СРЗНАЧ(A1:A10000). Суперопасными считаются вирусы
с уровнем опасности >= 5004. Для удобства все супервирусы, которые мы выбрали, перенесем в отдельный столбик
(столбец C). Удалим столбцы, характеризующие уровень опасности вирусов. Сортируем получившиеся столбцы по
возрастанию и начинаем набирать сумму, пока она меньше, чем время, отведенное на удаление. Максимальная сумма,
которую мы можем собрать, чтобы не превысить отведенное время, - это 9997173. Выходит, что мы можем удалить
4476 вирусов (2238 вирусов и 2238 супервирусов), время затраченное на удаление супервирусов - 5124042.
Ошибка.
Попробуйте повторить позже
В магазине сотовой связи представлены смартфоны различной стоимости. Считается, что K самых дешёвых
смартфонов относятся к бюджетному сегменту, а M самых дорогих – к премиум сегменту.
Входные и выходные данные. В первой строке входного файла 26_1.txt находятся три числа, записанные через пробел:
N – общее количество приведённых далее цен на смартфоны (натуральное число, не превышающее 10 000), K –
количество смартфонов в бюджетном сегменте, M – количество смартфонов в премиум сегменте. В следующих N
строках находятся значения цен на смартфоны (все числа натуральные, не превышающие 30000), каждое в отдельной
строке.
Запишите в ответе через пробел два числа: сначала цену самого дешевого смартфона, не попадающего ни
в премиум сегмент ни в бюджетный сегмент, а затем целую часть средней цены телефона из премиум
сегмента.
Пример входного файла:
10 3 2
28500
12000
17500
25000
18000
20000
22500
7500
19000
5500
При таких исходных данных ответ должен содержать 2 числа – 17500 и 26750. Пояснение: стоимость смартфонов из
бюджетного сегмента: 5500, 7500, 12000; стоимость смартфонов из премиум сегмента – 25000 и 28500. Минимальная
цена смартфона не класса премиум и не класса бюджет – 17500, а средняя цена премиум смартфонов, –
(25000+28500)/2 = 26750.0.
Всего смартфонов - 7777, количество смартфонов в бюджетном сегменте - 204, количество смартфонов в премиум
сегменте - 99.
1. Копируем столбец с ценами в Exel и сортируем по убыванию, теперь в начале столбца находятся смартфоны
премиум класса, а в конце - бюджетного класса.
2. Так как получается, что теперь в последних 204 ячейках находятся смартфоны бюджетного сегмента (диапазон
А7574:A7777), то в ячейке А7573 будет находится самый дешевый телефон вне бюджетног сегмента. А7573 = 5713
3. Необходимо найти среднее значение премиум сегмента. Телефоны премиум сегмента находят в начале столбца в
диапазоне А1:А99.
4. СРЗНАЧ(А1:А99) = 29842
Таким образом, ответ 5713 29842
Ошибка.
Попробуйте повторить позже
По итогам проведения олимпиады по программированию каждый участник получил определённое количество баллов,
различное для каждого ученика. По регламенту олимпиады победителя присуждают K лучших участников, а призёра
присуждают M лучших участников, следующих за ними. По заданной информации о результатах каждого из
участников определите минимальный балл побидителя и максимальный балл участника, не ставшего
призером.
Входные и выходные данные. В первой строке входного файла 26_4.txt находятся три числа, записанные через пробел:
N – общее количество результатов учащихся (натуральное число, не превышающее 10 000), K – количество
победителей, M – количество призёров. В следующих N строках находятся значения каждого из результатов (все
числа натуральные, не превышающие 1000), каждое в отдельной строке. Запишите в ответе через пробел
два числа: сначала минимальный балл победителя, а затем максимальный балл участника, не ставшего
призером.
Пример входного файла:
10 2 4
244
39
213
108
132
18
46
52
242
179
При таких исходных данных ответ должен содержать 2 числа – 242 и 52. Пояснение: победители набрали 244 и 242
балла, призёры набрали 213, 179, 132, 108 баллов. Тогда минимальный балл победителя 242, а максимальный балл
участника, не ставшего призером – 52.
Количество победителей 45, количество призеров - 170.
1. Копируем столбец с результатами олимпиады в Exel и сортируем по убыванию.
2. Тогда минимальный балл победителя находится в ячейке А45 = 930. А максимальный балл участника в ячейке А216
= 671 (первые 215 человек либо победители,либо призеры)
Таким образом, ответ 930 671
Ошибка.
Попробуйте повторить позже
Спутник «’Фотон» проводит измерения солнечной активности, результат каждого измерения представляет собой
натуральное число. Перед обработкой серии измерений из неё исключают K наибольших и K наименьших значений
(как недостоверные). По заданной информации о значении каждого из измерений, а также количестве исключаемых
значений, определите разницу между наименьшим из K наибольших недостоверных измерений и наибольшим
достоверным измерением, а также сумму всех недостоверных измерений.
Входные и выходные данные. В первой строке входного файла 26_1.txt находятся два числа, записанные через
пробел: N – общее количество измерений (натуральное число, не превышающее 10 000) и K – количество
исключаемых минимальных и максимальных значений. В следующих N строках находятся значения каждого из
измерений (все числа натуральные, не превышающие 1000), каждое в отдельной строке. Запишите в
ответе два числа без пробелов и разделителей: сначала разницу между наименьшим из K наибольших
недостоверных измерений и наибольшим достоверным измерением, а также сумму всех недостоверных
измерений.
Пример входного файла:
10 2
34
50
43
44
23
9
39
5
38
36
При таких исходных данных ответ должен содержать 2 числа – 1 и 108. Пояснение: 5 и 9 — наименьшие недостоверные
измерения, 50 и 44 — наибольшие недостоверные измерения, они будут отброшены. Тогда разница между наименьшим
из наибольших недостоверных измерений и наибольшим достоверным измерением равна: 44-43 = 1. Сумма всех
недостоверных измерений: 5+9+44+50 = 108.
1000 - общее количество измерений, 100 - исключаемые минимальные и максимальные значения
1. Копируется столбец данных в Exel и сортируется по убыванию.
2. Тогда наименьшее из наибольших недостверных значений находится в ячейке А100 = 911, а наибольшее
достоверное в ячейке А101 = 910. Тогда разница равна 911 - 910 = 1
3. Так как нам нужна сумма всех недостоверных значений, то есть 100 самых больших и 100 самых маленьких значений, то напишем формулу: = СУММ(А1:А100)+СУММ(A901:А1000). Сумма равна 100554.
Таким образом, ответ 1 100554
Ошибка.
Попробуйте повторить позже
По итогам проведения олимпиады по программированию каждый участник получил определённое количество баллов,
различное для каждого ученика. По регламенту олимпиады победителя присуждают K лучших участников, а
призёра присуждают M лучших участников, следующих за ними. По заданной информации о результатах
каждого из участников определите максимальный балл призёра и целую часть среднего значения баллов
победителей.
Входные и выходные данные. В первой строке входного файла 26_7.txt находятся три числа, записанные через
пробел: N – общее количество результатов учащихся (натуральное число, не превышающее 10 000), K –
количество победителей, M – количество призёров. В следующих N строках находятся значения каждого из
результатов (все числа натуральные, не превышающие 1000), каждое в отдельной строке. Запишите в ответе без
пробелов два числа: сначала максимальный балл призёра, а затем целую часть среднего значения баллов
победителей.
Пример входного файла:
10 2 4
244
39
213
108
132
18
46
52
242
179
При таких исходных данных ответ должен содержать 2 числа – 213 и 243. Пояснение: победители набрали 244 и 242
балла, призёры набрали 213, 179, 132, 108 баллов. Тогда максимальный балл призёра 213, а среднее значение баллов
победителей – 243.
Количество победителей 17, количество призеров - 43.
1. Копируем столбец с результатами олимпиады в Exel и сортируем по убыванию. 2. Тогда максимальный балл призера
находится в ячейке А18 = 985 (первые 17 человек - победители). А среднее значение баллов победителей найдем по
формуле: =СРЗНАЧ(А1:А17). Оно равно 993.
Таким образом, ответ 985 993
Ошибка.
Попробуйте повторить позже
В магазине сотовой связи представлены смартфоны различной стоимости. Считается, что K самых дешёвых
смартфонов относятся к бюджетному сегменту, а M самых дорогих – к премиум сегменту.
Входные и выходные данные. В первой строке входного файла 26_10.txt находятся три числа, записанные через
пробел: N – общее количество приведённых далее цен на смартфоны (натуральное число, не превышающее 10 000), K –
количество смартфонов в бюджетном сегменте, M – количество смартфонов в премиум сегменте. В следующих N
строках находятся значения цен на смартфоны (все числа натуральные, не превышающие 30000), каждое в отдельной
строке.
Запишите в ответе без пробелов два числа без пробелов и разделителей: сначала цену самого дорогого смартфона, не
попадающего в премиум сегмент, а затем целую часть средней цены телефона из сегмента, не относящегося ни к
премиум, ни к бюджетному. Пример входного файла:
10 3 2
28500
12000
17500
25000
18000
20000
22500
7500
19000
5500
При таких исходных данных ответ должен содержать 2 числа – 22500 и 19400. Пояснение: стоимость
смартфонов из бюджетного сегмента: 5500, 7500, 12000; стоимость смартфонов из премиум сегмента –
25000 и 28500. Максимальная цена смартфона не класса премиум - 22500, а средняя цена смартфонов, не
относящихся ни к премиум, ни бюджетным, - (22500 + 20000 + 19000 + 18000 + 17500)/5 = 19400.0.
Всего смартфонов - 7782, количество смартфонов в бюджетном сегменте - 199, количество смартфонов в премиум
сегменте - 89.
1. Копируем столбец с ценами в Exel и сортируем по убыванию, теперь в начале столбца находятся смартфоны
премиум класса, а в конце - бюджетного класса.
2. Так как получается, что теперь в первых 89 ячейках находятся смартфоны в премиум сегменте, то
в ячейке А90 будет находится цена на самый дорогой телефон после премиум сегмента. А90 = 29713
3. Необходимо найти среднее значение сегмента, который не относится ни к бюджетному, ни к премиум. Весь диапазон
столбца с ценами таков А1:А7782. Из начала надо убрать 89 ячеек, а из конца 199 ячеек, тогда диапазон для обычного
сегмента будет А90:А7583.
4. СРЗНАЧ(А90:А7583) = 17865
Таким образом, ответ 29713 17865
Ошибка.
Попробуйте повторить позже
Иван Иванов хочет вознарадить своих самых добросовестных сотрудников. Для этого ему необходимо найти тех, кто выполнил за какой-то рассматриваемый период наибольшее количество тасков. За это каждому сотруднику он платит по 1 у.е. Однако количество у.е., которое Иван Иванов готов потратить на своих подчиненных ограничено. Известно, что на вознаграждение могут претендовать только те, кто выполнил не менее 50 тасков.
По заданной информации о количестве выполненных тасков каждого сотрудника о количестве у.е., которые может потратить Иван Иванов определите максимальное количество сотрудников, претендующих на вознараждение, а также максимальное количество тасков, которое выполнил самый лучший сотрудник.
В первой строке входного файла находятся два числа: S – количество у.е. (натуральное число, не превышающее
10000) и N – количество сотрудников (натуральное число, не превышающее 10000). В следующих N строках находятся
значения о количестве выполненных тасков каждого сотрудника (все числа натуральные, удовлетворяющие условию:
), каждое в отдельной строке.
Пример входных данных:
8 12
12
96
54
100
33
78
91
60
49
51
0
63
Для этих данных результатом будет: 8 100
Запишите в ответе два числа через пробел: сначала максимальное количество вознаражденных сотрудников, выполнивших не менее 50 тасков, а также максимальное количество тасков, выполненных самым лучшим сотрудников при условии, что таковые найдены. В противном случае необходимо вывести два нуля.
Откроем файл в Excel, удалим первую строчку файла. Поскольку нас интересуют сотрудники, которые выполнили не менее 50 тасков, то отсортируем числа по убыванию. Таблица будет иметь такой вид:
Можем заметить, что последний человек, который соответствует условию находится на 47 месте, получается, что подходящих сотрудников 47 штук. Максимальное количество тасков, которое выполнил один сотрудник равняется 100. Ответ:47 100.
Ошибка.
Попробуйте повторить позже
Илья каждый день заходит в игру, чтобы забрать ежедневный бонус. Количество бонусов, дающихся в игре, меняется каждый день.
Определите, какое максимальное количество бонусов он сможет собрать за K дней (необязательно идущих подряд) и минимальное количество бонусов, собранных за один из этих дней.
Входные и выходные данные
В первой строке входного файла находятся два числа: N – Общее количество дней, на протяжении которых Илья заходил в игру за бонусами (натуральное число, не превышающее 10 000) и K – количество дней, на протяжении которых Илья собрал максимально возможное количество бонусов (натуральное число, не превышающее 1000).
В следующих N строках находятся значения количества собранных бонусов (все числа натуральные, не превышающие 1000), каждое в отдельной строке. Гарантируется, что N > K.
Запишите в ответе два числа через пробел: максимальное число бонусов, собранных Ильёй за K дней и минимальное количество бонусов, собранных Ильёй за один день.
Пример входного файла:
5 3
10
5
15
17
13
При таких исходных данных Илья может собрать суммарно максимум 45 бонусов за 3 дня (17+15+13 = 45). Наименьшие количество собранных главным героем бонусов за один день оказалось – 13.
Откроем файл электронной таблицы, перенесем в другое место значения на первой строке и удалим первую строку. Таблица примет такой вид:
Отсортируем столбец по убыванию, поскольку нам нужно определить максимальное количество бонусов, которое можно собрать за данный период. Для нахождения суммы всех бонусов напишем формулу: =СУММ(A1:A356). Для нахождения минимального бонуса, который собрали за данный период напишем формулу: =МИН(A1:A356). Ответ:349514 964.
Ошибка.
Попробуйте повторить позже
В некотором государстве правительство выделяет специальностей для обучения студентов. На эти места претендуют
абитуриентов. Для каждой специальности задано количество мест. Для каждого абитуриента известны его баллы и
одна выбранная им специальность. Зачисление осуществляется в одну волну. На направление зачисляются
абитуриенты с максимальными баллами. Определите максимальный балл поступившего абитуриента на
специальность с самым высоким средним баллом и этот средний балл с точностью до двух знаков после
запятой.
Входные данные представлены в файле следующим образом. В первой строке через пробел записаны два целых числа
и
. В следующих
строках записано по одному числу – количеством мест по каждой специальности. Следующие
строк содержат пары чисел: баллы студента (до 300 включительно) и код выбранной специальности (начиная с
0).
В ответе запишите два числа: максимальный балл поступившего абитуриента на специальность с самым высоким средним баллом и средний балл такой специальности.
f = open("26.txt") k, n = [int(i) for i in f.readline().split()] a = [int(f.readline()) for _ in range(k)] students = [] for _ in range(n): x, y = [int(i) for i in f.readline().split()] students.append((y, -x)) students.sort() res = [[] for _ in range(k)] for student in students: if a[student[0]] > 0: a[student[0]] -= 1 res[student[0]].append(-student[1]) average_score = 0 maxk = 0 for i in range(k): if len(res[i]) > 0: if sum(res[i]) / len(res[i]) > average_score: average_score = sum(res[i]) / len(res[i]) maxk = max(res[i]) print(maxk, average_score)
Ошибка.
Попробуйте повторить позже
В некотором государстве правительство выделяет специальностей для обучения студентов. На эти места претендуют
абитуриентов. Для каждой специальности задано количество мест. Для каждого абитуриента известны его баллы и
одна выбранная им специальность. Зачисление осуществляется в одну волну. На направление зачисляются
абитуриенты с максимальными баллами. Определите максимальный балл поступившего абитуриента на
специальность с самым высоким средним баллом и этот средний балл с точностью до двух знаков после
запятой.
Входные данные представлены в файле следующим образом. В первой строке через пробел записаны два целых числа
и
. В следующих
строках записано по одному числу – количеством мест по каждой специальности. Следующие
строк содержат пары чисел: баллы студента (до 300 включительно) и код выбранной специальности (начиная с
0).
В ответе запишите два числа: максимальный балл поступившего абитуриента на специальность с самым высоким средним баллом и средний балл такой специальности.
f = open("26.txt") k, n = [int(i) for i in f.readline().split()] a = [int(f.readline()) for _ in range(k)] students = [] for _ in range(n): x, y = [int(i) for i in f.readline().split()] students.append((y, -x)) students.sort() res = [[] for _ in range(k)] for student in students: if a[student[0]] > 0: a[student[0]] -= 1 res[student[0]].append(-student[1]) average_score = 0 maxk = 0 for i in range(k): if len(res[i]) > 0: if sum(res[i]) / len(res[i]) > average_score: average_score = sum(res[i]) / len(res[i]) maxk = max(res[i]) print(maxk, average_score)
Ошибка.
Попробуйте повторить позже
В магазинах города продают сахар различной стоимости на развес. Количество доступного сахара и его общая стоимость для каждого магазина записаны как натуральные числа: вес не превосходит 1000, стоимость не превосходит 100 000. Ане и Маше для консервации необходимо приобрести К килограмм сахара каждой. С целью экономии каждая сперва покупает сахар с самой низкой ценой за один килограмм. Аня посетила все магазины первой и купила необходимое ей количество, Маша покупала позже из оставшегося в магазинах. По заданной информации о сахаре в магазинах и необходимом количестве килограмм определите наименьшую сумму, которую потратят на сахар Аня и Маша.
Входные данные представлены в файле следующим образом. В первой строке через пробел записаны числа N - количество магазинов (натуральное число, не превышающее 1000) и K – требуемый вес сахара (натуральное число, не превосходящее 1000). В каждой из последующих N строк через пробел записаны два числа – количество сахара в магазине и его общая стоимость.
Запишите в ответе два числа через пробел – наименьшие суммы, которую потратят на сахар Аня и Маша.
Открываем программу Excel и загружаем в неё наш файл.
В столбце будем находить стоимость за один килограмм сахара, для этого впишем туда формулу:
и
растянем её вниз до конца. Отсортируем столбец
по возрастанию цены и столбец А по убыванию количества
магазинов.
Посчитаем количество магазинов, которое пройдёт Аня. Для этого в ячейку продублируем значение ячейки
, а в ячейку
впишем формулу:
и растянем её вниз до того момента, как значение будет близко к
400. Ближайшее значение получаем 421. Так как оно превышает 400, то в этом магазине останется ещё 21 килограмм
сахара для Маши. Добавим снизу этой строки пустую, в которую запишем в ячейке
значение 21. А в ячейке
вместо 28 установим значение 7, таким образом получив 400 килограмм сахара для Ани. Ей придётся пройти 23
магазина, чтобы их купить.
Теперь аналогично посчитаем количество магазинов для Маши. В ячейку копируем значение ячейки
, а в
ячейку
вписываем формулу:
и растягиваем вниз. Снова ищем значение, близкое к 400. Оно
находится в строке 49 и равно 414. Значит, Маше придётся пройти 26 магазина. При этом 14 килограмм снова остаются
лишние и по аналогичной схеме разобьем строку 49 на две:
Для подсчёта суммы сложим значения по столбцу В отдельно для Ани и Маши.
Ошибка.
Попробуйте повторить позже
В некоторый ВУЗ хотят поступить абитуриенты. Отбор студентов производится на основании суммы баллов, полученных при сдаче ЕГЭ. В случае равенства баллов нескольких абитуриентов выбор между ними осуществляется на основании среднего балла аттестата.
Входные данные: N - количество абитуриентов (натуральное число, не превышающее 10000) и М - количество бюджетных мест (натуральное число, не превышающее 1000). В следующих N строках находятся значения суммы баллов, полученных каждым абитуриентом (все числа натуральные и не превышают 300), каждое в отдельной строке.
Запишите в ответе два числа: сначала наименьшую среди абитуриентов сумму баллов ЕГЭ, позволяющую быть зачисленным вне зависимости от среднего балла аттестата. В качестве второго числа укажите среднее значение суммы баллов среди тех абитуриентов, которым результаты ЕГЭ не позволяют быть зачисленным в ВУЗ при любом аттестате. В ответе запишите целую часть числа.
Открываем программу Excel и загружаем в неё наш файл. Отсортируем столбец А по убыванию и отделим первые 630 строк. Как можно заметить, список заканчивается на балле 276. Ниже также есть студенты, у которых балл 276, поэтому он не гарантирует поступление. Берем ближайшее большее значение баллов - 277.
Осталось посчитать среднее значение суммы баллов студентов, которые точно не поступят. Для этого в любую
ячейку впишем формулу СРЗНАЧ