Тема 26. Обработка целочисленной информации с использованием сортировки

26.09 Прочие прототипы

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела обработка целочисленной информации с использованием сортировки
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 21#56170Максимум баллов за задание: 2

На складе требуется разместить N  контейнеров различного размера, каждый из которых имеет форму куба. Контейнеры имеют разные цвета, которые обозначаются латинскими буквами. Чтобы сэкономить место, контейнеры вкладывают друг в друга. Один контейнер можно вложить в другой, если выполнены следующие условия:

а) размер стороны внешнего контейнера превышает размер стороны внутреннего на K и более условных единиц

б) цвета внешнего и внутреннего контейнеров различны.

Группу вложенных друг в друга контейнеров называют блоком. В блок можно объединять до M  контейнеров включительно. Каждый блок, а также каждый одиночный контейнер, не входящий в блоки, занимает при хранении одну складскую ячейку. Блоки собирают по одному, начиная с самого большого контейнера. В него добавляют самый большой из оставшихся, подходящий по размеру, и т. д.

Определите минимальное количество ячеек, которые потребуются для хранения всех контейнеров, и количество блоков, которые содержат максимально возможное число контейнеров.

Входные данные:

В первой строке входного файла записано натуральное число N  (1 ≤ N ≤ 20000)  – количество контейнеров, натуральное число K  (1 ≤ K ≤ 1000)  – наименьшая допустимая разница размеров вложенных соседних контейнеров и натуральное число M  (1 ≤ M ≤ N )  – наибольшее допустимое количество контейнеров в блоке.

Каждая из следующих N  строк содержит натуральное число, не превышающее 10000  – длину стороны очередного контейнера, и латинскую букву, обозначающую цвет этого контейнера.

Пример:

7 5 3

2 A

18 B

47 A

16 B

38 A

55 A

48 B

Для такого набора контейнеров можно составить три блока, удовлетворяющих условию: (55,48,38)  , (47,18,2)  и     (16)  . Количество блоков с максимальным количеством контейнеров – 2  . Ответ: 3  2  .

Вложения к задаче
Показать ответ и решение
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] ))

Ответ: 678 657

Ошибка.
Попробуйте повторить позже

Задача 22#56327Максимум баллов за задание: 2

Задание выполняется с использованием прилагаемых файлов

В магазине для упаковки подарков есть N кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т.д. Одну коробку можно поместить в другую, если длина её стороны хотя бы на 5  единиц меньше длины стороны другой коробки. Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой коробки, где будет находиться подарок. Размер подарка позволяет поместить его в самую маленькую коробку.

Входные данные

В первой строке входного файла находится число N – количество коробок в магазине (натуральное число, не превышающее 10000  ). В следующих N строках находятся значения длин сторон коробок (все числа натуральные, не превышающие 10000  ), каждое – в отдельной строке.

Запишите в ответе два целых числа: сначала наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.

Пример организации данных во входном файле

5

43

40

32

40

30

Пример входного файла приведён для пяти коробок и случая, когда минимальная допустимая разница между длинами сторон коробок, подходящих для упаковки «матрёшкой», составляет 3  единицы.

При таких исходных данных условию задачи удовлетворяют наборы коробок с длинами сторон 30  , 40  и 43  или      32  , 40  и 43  соответственно, т.е. количество коробок равно 3  , а длина стороны самой маленькой коробки равна 32  .

Вложения к задаче
Показать ответ и решение
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)

 

Ответ: 174 10

Ошибка.
Попробуйте повторить позже

Задача 23#56330Максимум баллов за задание: 2

На кондитерской фабрике есть n видов пирожных, i-го вида на фабрике ai  штук. Было принято решение отвезти пирожные на продажу на ярмарку, но директор фабрики решил, что кондитерские изделия на ярмарочной витрине должны быть выложены одинаковыми рядами, при этом пирожных каждого вида должно быть одинаковое количество. Необязательно отвозить на ярмарку все виды пирожных, можно выбрать некоторые виды и взять одинаковое число пирожных каждого выбранного вида.

Помогите директору отвезти на ярмарку наибольшее число пирожных — найдите, сколько видов пирожных и сколько пирожных каждого вида нужно отвезти на ярмарку.

Формат входных данных

Первая строка входных данных содержит число n — количество видов пирожных на фабрике, 1 ≤ n ≤ 105  . Следующие n строк содержат по одному числу ai  — количество пирожных i-го вида,           5
1 ≤ ai ≤ 10  . Сумма всех значений ai  не превосходит 2⋅109  .

Формат выходных данных

Программа должна вывести два целых числа. Первое число равно количеству видов пирожных, которые необходимо выбрать для ярмарки. Второе число равно количеству пирожных каждого выбранного вида, которые нужно отвезти на ярмарку.

Если возможных ответов несколько, выведите любой из них.

Пример:

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)

Ответ: 2461 1279

Ошибка.
Попробуйте повторить позже

Задача 24#56331Максимум баллов за задание: 2

Источник: КЕГЭ2022

В магазине для упаковки подарков есть N  кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т.д. Одну коробку можно поместить в другую, если длина её стороны хотя бы на 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.
Перенесем числовые значение количества коробок в магазине куда-нибудь, где оно нам не помешает. Сортируем числа столбца A  по убыванию. Выделим полностью столбец A  , перейдём в раздел Данные и нажимаем на инструмент Удалить дубликаты, в появившемся окне выбираем Выделить все и нажимаем ОК (это удалит коробки, которые были по записаны несколько раз). Запишем для первых ячеек максимальный размер подарка, который закончится на данной коробке. В ячейку B4  запишем формулу =МАКС(ЕСЛИ(A3-A4>=3;B3+1;1);ЕСЛИ(A2-A4>=3;B2+1;1);ЕСЛИ(A1-A4>=3;B1+1;1)), скопируем её на все свободные клеточки этого столбца. Находим маскимальное значение в столбце B  . Выписываем в ответ наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.

Решение 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])

Ответ: 2767 51

Ошибка.
Попробуйте повторить позже

Задача 25#56332Максимум баллов за задание: 2

В магазине для упаковки подарков есть N  кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т.д. Одну коробку можно поместить в другую, если длина её стороны хотя бы на 3  единицы меньше длины стороны другой коробки. Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой коробки, где будет находиться подарок. Размер подарка позволяет поместить его в самую маленькую коробку.

Входные данные

В первой строке входного файла находится число N  – количество коробок в магазине (натуральное число, не превышающее 10000  ). В следующих N  строках находятся значения длин сторон коробок (все числа натуральные, не превышающие 10000  ), каждое – в отдельной строке. Запишите в ответе два целых числа: сначала наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.

Типовой пример организации данных во входном файле

5

21

19

13

31

40

Пример входного файла приведён для пяти коробок и случая, когда минимальная допустимая разница между длинами сторон коробок, подходящих для упаковки «матрёшкой», составляет 3  единицы. При таких исходных данных условию задачи удовлетворяют наборы коробок с длинами сторон 40,31,21  и 13  или 40,31,19  и 13  соответственно, т.е. количество коробок равно 4  , а длина стороны самой маленькой коробки равна 13  .

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значение количества коробок в магазине куда-нибудь, где оно нам не помешает. Сортируем числа столбца A  по убыванию. Выделим полностью столбец A  , перейдём в раздел Данные и нажимаем на инструмент Удалить дубликаты, в появившемся окне выбираем Выделить все и нажимаем ОК (это удалит коробки, которые были по записаны несколько раз). Запишем для первых ячеек максимальный размер подарка, который закончится на данной коробке. В ячейку B4  запишем формулу =МАКС(ЕСЛИ(A3-A4>=3;B3+1;1);ЕСЛИ(A2-A4>=3;B2+1;1);ЕСЛИ(A1-A4>=3;B1+1;1)), скопируем её на все свободные клеточки этого столбца. Находим маскимальное значение в столбце B  . Выписываем в ответ наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.

Идея решения

Идея решения заключается в том, что мы сначала считаем данные из файла и затем отсортируем их по убыванию, для удобства в дальнейшем. Затем мы создадим список 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])

Ответ: 2787 51

Ошибка.
Попробуйте повторить позже

Задача 26#56550Максимум баллов за задание: 2

На закупку товаров типов 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.
Перенесем числовые значения количества товаров и суммы денег, где они нам не помешают (ячейки F2  и G2  ). Сортируем числа по первому столбцу по возрастанию. Выбираем 95 элементов (их общая сумма меньше 100000, то есть это максимальное количество товаров, которые мы сможем купить). Для удобства все элементы, которые мы выбрали, перенесем в отдельный столбик (столбец C  ). Найдём разницу между суммой денег, выделенной на закупку, и текущей суммы товаров (ячейка G6  ). Будем убирать из текущей суммы (столбец C  ) товары типов B,C, D  с максимальной стоимостью и добавлять ещё не выбранные товары типа А с минимальной стоимостью до тех пор, пока наша сумма не превысит 100000 В ячейке F 9  посчитаем общее количество выбранные товаров типа А, в ячейке G6  - оставшуюся неиспользованную сумму денег. Запишем ответ.

Ответ: 32 64

Ошибка.
Попробуйте повторить позже

Задача 27#56678Максимум баллов за задание: 2

Игорь Владимирович хранит на компьютере картинки и видео различного размера. Он хочет поместить как можно больше картинок и видео на флеш-накопитель, объём которого равен K  Кбайт, причём так, чтобы не менее чем половина его объёма была зарезервирована под видео. Определите максимальное количество файлов (картинок и видео), которое Игорь Владимирович может сохранить на флеш-накопителе, и максимальный объём сохранённого видео. Информационный объем каждой картинки не более 50  Кбайт, а объем видео – не менее 51  Кбайт.

Входные данные:

Входные данные представлены в файле следующим образом. В первой строке записаны два числа: N  — количество всех изображений и видео, K  — объём флеш-накопителя. В следующих N  строках находятся значения объёмов картинок и видео в Кбайтах.

Запишите в ответе два числа: сначала общее количество картинок и видео, которые могут быть сохранены, затем — максимально возможный объём сохранённой картинки или видео.

Пример входного файла:

8 150

20

101

15

400

5

900

10

9

Ответ для приведённого примера:

5 20

Вложения к задаче
Показать ответ и решение

Решение 1 ( Excel / LibreOffice):

Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значения количества изображений и видео и объема флеш-накопителя, где они нам не помешают. Сортируем числа по возрастанию. В условии нам сказано, что файлы, объем которых меньше либо равен 50 Кбайт, являются изображениями, тогда остальные - видео. Перенесем все видео в другой столбик, например в B  . Не менее половины объема памяти флеш-накопителя ОБЯЗАТЕЛЬНО должны занимать видео, значит, найдем половину всей памяти нашей флешки и возьмем максимальное кол-во видео, чтобы ТОЧНО заполнить это место, перенес их в столбик C  . Оставшееся место заполним изображениями, имеющими минимальный объем. Изображений больше нет, а место осталось, значит, добавляем еще видео (для удобства перенесем их в столбик D  ). Теперь у нас осталось 376 КБ. А вдруг можно получить больше? Проверим это, убрав последний элемент обратно в столбик B  . Теперь сумма размеров выбранных файлов равна 554207. Проверим, нет ли у нас в столбике A  числа, максимально близкого к 793 (555000-554207=793)? У нас есть число 793!!! Значит, переносим его в столбик D  и считаем ответ.

Решение 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)

Ответ: 9343 793

Ошибка.
Попробуйте повторить позже

Задача 28#56722Максимум баллов за задание: 2

Источник: 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  . Ответ: 422  .

Вложения к задаче
Показать ответ и решение

Решение 1 ( Excel / LibreOffice):
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значения количества записей и общее время, отведенное на удаление вирусов, куда-нибудь, где они нам не помешают. Найдем средний уровень опасности вирусов - =СРЗНАЧ(A1:A10000). Суперопасными считаются вирусы с уровнем опасности >= 4983. Для удобства все супервирусы, которые мы выбрали, перенесем в отдельный столбик (столбец C). Удалим столбцы, характеризующие уровень опасности вирусов. Сортируем получившиеся столбцы по возрастанию и начинаем набирать сумму, пока она меньше, чем время, отведенное на удаление. Максимальная сумма, которую мы можем собрать, чтобы не превысить отведенное время, - это 9993559. Однако,осталось 6441, значит мы можем удалить еще один вирус. Выходит, что мы можем удалить 4499 вирусов (2250 вирусов и 2249 супервирусов), время затраченное на удаление супервирусов - 5005489.

Ответ: 4499 5005489

Ошибка.
Попробуйте повторить позже

Задача 29#56735Максимум баллов за задание: 2

Задание выполняется с использованием прилагаемых файлов Источник: 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.

Ответ: 4476 5124042

Ошибка.
Попробуйте повторить позже

Задача 30#57200Максимум баллов за задание: 2

В магазине сотовой связи представлены смартфоны различной стоимости. Считается, что 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

Ответ: 5713 29842

Ошибка.
Попробуйте повторить позже

Задача 31#57203Максимум баллов за задание: 2

По итогам проведения олимпиады по программированию каждый участник получил определённое количество баллов, различное для каждого ученика. По регламенту олимпиады победителя присуждают 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

Ответ: 930 671

Ошибка.
Попробуйте повторить позже

Задача 32#57340Максимум баллов за задание: 2

Спутник «’Фотон» проводит измерения солнечной активности, результат каждого измерения представляет собой натуральное число. Перед обработкой серии измерений из неё исключают 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

Ответ: 1100554

Ошибка.
Попробуйте повторить позже

Задача 33#57346Максимум баллов за задание: 2

По итогам проведения олимпиады по программированию каждый участник получил определённое количество баллов, различное для каждого ученика. По регламенту олимпиады победителя присуждают 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

Ответ: 985993

Ошибка.
Попробуйте повторить позже

Задача 34#57349Максимум баллов за задание: 2

В магазине сотовой связи представлены смартфоны различной стоимости. Считается, что 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

Ответ: 2971317865

Ошибка.
Попробуйте повторить позже

Задача 35#58109Максимум баллов за задание: 2

Иван Иванов хочет вознарадить своих самых добросовестных сотрудников. Для этого ему необходимо найти тех, кто выполнил за какой-то рассматриваемый период наибольшее количество тасков. За это каждому сотруднику он платит по 1 у.е. Однако количество у.е., которое Иван Иванов готов потратить на своих подчиненных ограничено. Известно, что на вознаграждение могут претендовать только те, кто выполнил не менее 50 тасков.

По заданной информации о количестве выполненных тасков каждого сотрудника о количестве у.е., которые может потратить Иван Иванов определите максимальное количество сотрудников, претендующих на вознараждение, а также максимальное количество тасков, которое выполнил самый лучший сотрудник.

В первой строке входного файла находятся два числа: S – количество у.е. (натуральное число, не превышающее 10000) и N – количество сотрудников (натуральное число, не превышающее 10000). В следующих N строках находятся значения о количестве выполненных тасков каждого сотрудника (все числа натуральные, удовлетворяющие условию: 1 ≤ X ≤ 100  ), каждое в отдельной строке.

Пример входных данных:

8 12

12

96

54

100

33

78

91

60

49

51

0

63

Для этих данных результатом будет: 8 100

Запишите в ответе два числа через пробел: сначала максимальное количество вознаражденных сотрудников, выполнивших не менее 50 тасков, а также максимальное количество тасков, выполненных самым лучшим сотрудников при условии, что таковые найдены. В противном случае необходимо вывести два нуля.

Вложения к задаче
Показать ответ и решение

Откроем файл в Excel, удалим первую строчку файла. Поскольку нас интересуют сотрудники, которые выполнили не менее 50 тасков, то отсортируем числа по убыванию. Таблица будет иметь такой вид:

PIC

Можем заметить, что последний человек, который соответствует условию находится на 47 месте, получается, что подходящих сотрудников 47 штук. Максимальное количество тасков, которое выполнил один сотрудник равняется 100. Ответ:47 100.

Ответ: 47 100

Ошибка.
Попробуйте повторить позже

Задача 36#59604Максимум баллов за задание: 2

Илья каждый день заходит в игру, чтобы забрать ежедневный бонус. Количество бонусов, дающихся в игре, меняется каждый день.

Определите, какое максимальное количество бонусов он сможет собрать за 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.

Вложения к задаче
Показать ответ и решение

Откроем файл электронной таблицы, перенесем в другое место значения на первой строке и удалим первую строку. Таблица примет такой вид:

PIC

Отсортируем столбец по убыванию, поскольку нам нужно определить максимальное количество бонусов, которое можно собрать за данный период. Для нахождения суммы всех бонусов напишем формулу: =СУММ(A1:A356). Для нахождения минимального бонуса, который собрали за данный период напишем формулу: =МИН(A1:A356). Ответ:349514 964.

Ответ: 349514 964

Ошибка.
Попробуйте повторить позже

Задача 37#61886Максимум баллов за задание: 2

В некотором государстве правительство выделяет K  специальностей для обучения студентов. На эти места претендуют N  абитуриентов. Для каждой специальности задано количество мест. Для каждого абитуриента известны его баллы и одна выбранная им специальность. Зачисление осуществляется в одну волну. На направление зачисляются абитуриенты с максимальными баллами. Определите максимальный балл поступившего абитуриента на специальность с самым высоким средним баллом и этот средний балл с точностью до двух знаков после запятой.

Входные данные представлены в файле следующим образом. В первой строке через пробел записаны два целых числа K  и N  . В следующих K  строках записано по одному числу – количеством мест по каждой специальности. Следующие N  строк содержат пары чисел: баллы студента (до 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)

Ответ: 292 266.8

Ошибка.
Попробуйте повторить позже

Задача 38#61917Максимум баллов за задание: 2

В некотором государстве правительство выделяет K  специальностей для обучения студентов. На эти места претендуют N  абитуриентов. Для каждой специальности задано количество мест. Для каждого абитуриента известны его баллы и одна выбранная им специальность. Зачисление осуществляется в одну волну. На направление зачисляются абитуриенты с максимальными баллами. Определите максимальный балл поступившего абитуриента на специальность с самым высоким средним баллом и этот средний балл с точностью до двух знаков после запятой.

Входные данные представлены в файле следующим образом. В первой строке через пробел записаны два целых числа K  и N  . В следующих K  строках записано по одному числу – количеством мест по каждой специальности. Следующие N  строк содержат пары чисел: баллы студента (до 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 290.52

Ошибка.
Попробуйте повторить позже

Задача 39#63361Максимум баллов за задание: 2

В магазинах города продают сахар различной стоимости на развес. Количество доступного сахара и его общая стоимость для каждого магазина записаны как натуральные числа: вес не превосходит 1000, стоимость не превосходит 100 000. Ане и Маше для консервации необходимо приобрести К килограмм сахара каждой. С целью экономии каждая сперва покупает сахар с самой низкой ценой за один килограмм. Аня посетила все магазины первой и купила необходимое ей количество, Маша покупала позже из оставшегося в магазинах. По заданной информации о сахаре в магазинах и необходимом количестве килограмм определите наименьшую сумму, которую потратят на сахар Аня и Маша.

Входные данные представлены в файле следующим образом. В первой строке через пробел записаны числа N - количество магазинов (натуральное число, не превышающее 1000) и K – требуемый вес сахара (натуральное число, не превосходящее 1000). В каждой из последующих N строк через пробел записаны два числа – количество сахара в магазине и его общая стоимость.

Запишите в ответе два числа через пробел – наименьшие суммы, которую потратят на сахар Аня и Маша.

Вложения к задаче
Показать ответ и решение

Открываем программу Excel и загружаем в неё наш файл.

В столбце C  будем находить стоимость за один килограмм сахара, для этого впишем туда формулу: = B1∕A1  и растянем её вниз до конца. Отсортируем столбец C  по возрастанию цены и столбец А по убыванию количества магазинов.

Посчитаем количество магазинов, которое пройдёт Аня. Для этого в ячейку D1  продублируем значение ячейки A1  , а в ячейку D2  впишем формулу: = D1 + A2  и растянем её вниз до того момента, как значение будет близко к 400. Ближайшее значение получаем 421. Так как оно превышает 400, то в этом магазине останется ещё 21 килограмм сахара для Маши. Добавим снизу этой строки пустую, в которую запишем в ячейке A24  значение 21. А в ячейке  A23  вместо 28 установим значение 7, таким образом получив 400 килограмм сахара для Ани. Ей придётся пройти 23 магазина, чтобы их купить.

PIC

Теперь аналогично посчитаем количество магазинов для Маши. В ячейку D24  копируем значение ячейки A24  , а в ячейку D25  вписываем формулу: = D24 + A25  и растягиваем вниз. Снова ищем значение, близкое к 400. Оно находится в строке 49 и равно 414. Значит, Маше придётся пройти 26 магазина. При этом 14 килограмм снова остаются лишние и по аналогичной схеме разобьем строку 49 на две:

PIC

Для подсчёта суммы сложим значения по столбцу В отдельно для Ани и Маши.

Ответ: 25586 30795

Ошибка.
Попробуйте повторить позже

Задача 40#63363Максимум баллов за задание: 2

В некоторый ВУЗ хотят поступить абитуриенты. Отбор студентов производится на основании суммы баллов, полученных при сдаче ЕГЭ. В случае равенства баллов нескольких абитуриентов выбор между ними осуществляется на основании среднего балла аттестата.

Входные данные: N - количество абитуриентов (натуральное число, не превышающее 10000) и М - количество бюджетных мест (натуральное число, не превышающее 1000). В следующих N строках находятся значения суммы баллов, полученных каждым абитуриентом (все числа натуральные и не превышают 300), каждое в отдельной строке.

Запишите в ответе два числа: сначала наименьшую среди абитуриентов сумму баллов ЕГЭ, позволяющую быть зачисленным вне зависимости от среднего балла аттестата. В качестве второго числа укажите среднее значение суммы баллов среди тех абитуриентов, которым результаты ЕГЭ не позволяют быть зачисленным в ВУЗ при любом аттестате. В ответе запишите целую часть числа.

Вложения к задаче
Показать ответ и решение

Открываем программу Excel и загружаем в неё наш файл. Отсортируем столбец А по убыванию и отделим первые 630 строк. Как можно заметить, список заканчивается на балле 276. Ниже также есть студенты, у которых балл 276, поэтому он не гарантирует поступление. Берем ближайшее большее значение баллов - 277.

Осталось посчитать среднее значение суммы баллов студентов, которые точно не поступят. Для этого в любую ячейку впишем формулу =  СРЗНАЧ(A763 : A9582)

Ответ: 277 247
Рулетка
Вы можете получить скидку в рулетке!