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

26.04 Скидки

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

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

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

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

Продавец (по прозвищу «Не просто показываю») предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:

  • на каждый второй товар стоимостью больше 130  рублей предоставляется скидка 50%  ;
  • общая стоимость покупки со скидкой округляется вверх до целого числа рублей;
  • порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.

По известной стоимости каждого товара в покупке необходимо определить общую стоимость покупки с учётом скидки и стоимость самого дорогого товара, на который будет предоставлена скидки

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

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

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

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

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

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

Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Верхнее число - это кол-во чисел, переносим его отдельно.

Сортируем числа по возрастанию.

Находим первое число, большее 130  , т.е. 131  и считаем, сколько осталось чисел. Их осталось 4485  , значит, на    2242  товара будет применена скидка. Так как это должно быть выгодно продавцу, значит, скидка предоставляется на первые, самые дешевые, 2242  товара.

Вставляем формулу в соседние от необходимых нам ячеек: =A4816*0,5. Не забывайте, что кол-во товаров должно быть 2242  .

Далее считаем сумму с помощью формулы =CУММ(B:B;A1:A4815;A7058:A9301) и записываем последнее число, на которое вы применили формулу выше.

Решение 2 (Python)

file = open(’Задание_26.txt’)
lines = file.readlines()

n = int(lines[0])
array = list(map(int, lines[1:]))
array = sorted(array)

i = 0
current_sum = 0
last_elem = 0
ind_last = 0
users_count = 0

while array[i] <= 130:
    current_sum += array[i]
    i += 1

t = i + (n - i) // 2 + (n % 2)
ans = current_sum + sum(array[t:]) + sum(array[i:t]) // 2 + sum(array[i:t]) % 2

print(ans, array[t - 1])

Ответ: 991743 190

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

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

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

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

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

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

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

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

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

10 3

1800

3600

3700

800

2600

2500

1800

1500

1900

1200

При таких исходных данных ответ должен содержать два числа — 1800  и 280  . Пояснение: скидка будет на товары стоимостью 800,1200,1500  . Тогда самый дешёвый товар без скидки стоит 1800  , а сумма скидок 64 +96 + 120 = 280  .

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

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

Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовые значения количества цен и количества товаров, где они нам не помешают. Сортируем числа по возрастанию. Выбираем 144 элемента с минимальным числовым значением. Для удобства все элементы которые мы выбрали, перенесем в отдельный столбик, например в B  . Теперь в столбике C  найдем, чему равна скидка на каждый товар. Найдем товар, имеющий мин. числовое значение в столбике A  . Суммируем значения всех скидок. Запишем ответ.

Решение 2 (Python):

file = open("3.txt")
lines = file.readlines()

n, k = map(int, lines[0].split())
array = list(map(int, lines[1:]))
array = sorted(array)

with_discount = 0

for i in range(k):
    with_discount += array[i] * 0.08

print(array[k], int(with_discount))

Ответ: 1700 12512

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

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

Магазин предоставляет оптовому покупателю скидку по следующим правилам:
- на каждый второй товар ценой больше 200 рублей предоставляется скидка 30%;
- общая цена покупки со скидкой округляется вверх до целого числа рублей;
- порядок товаров в списке определяет магазин и делает это так, чтобы общая сумма скидки была наименьшей.
Вам необходимо определить общую цену закупки с учётом скидки и цену самого дорогого товара, на который будет предоставлена скидка.

Входные данные. Первая строка входного файла 4.txt содержит число N – общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число – цену товара в рублях. В ответе запишите два целых числа: сначала общую цену покупки с учётом скидки, затем цену самого дорогого товара, на который предоставлена скидка. Пример входного файла
7
225
260
380
95
192
310
60
В данном случае товары с ценой 60, 95, 192 не участвуют в определении скидки, остальные товары магазину выгодно расположить в таком порядке цен: 380, 225, 310, 260. Скидка предоставляется на товары ценой 225 и 260. Суммарная цена этих двух товаров со скидкой составит 339,5 руб., после округления – 340 руб. Общая цена покупки составит: 60 + 95 + 340 + 380 + 192 + 310 = 1377 руб. Самый дорогой товар, на который будет получена скидка, стоит 260 руб. В ответе нужно записать числа 1377 и 260.

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

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

Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовое значение количества купленных товаров, где оно нам не помешает. Сортируем числа по возрастанию. Перенесем все числа, большие 200 в столбик B  . В столбике C  найдем стоимость товаров после предоставления скидки (только на первую половину товаров, так как именно таким образом мы максимизируем прибыль нашего магазина). Суммируем стоимости товаров до 200 (включительно)(столбик A  ), стоимости товаров со скидкой (столбик C  ) и стоимости товаров больших 200, но без скидки (B411 : B821)  . Округляем полученное число вверх до целого. Найдем товар, который имеет макс. числовое значение и на который предоставляется скидка. Запишем ответ.

Решение 2 (Python):

file = open("4.txt")

n = int(file.readline())
array = [int(file.readline()) for _ in range(n)]
array = sorted(array)

i = 0
summ = 0
max_wd = 0

while array[i] <= 200:
    summ += array[i]
    i += 1

t = (n - i) // 2

while t > 0:
    summ += array[i] * 0.7
    max_wd = array[i]
    i += 1
    t -= 1

if summ + sum(array[i:]) % 1 != 0:
    print(int(summ + sum(array[i:])) + 1, max_wd)
else:
    print(int(summ + sum(array[i:])), max_wd)

Ответ: 464632 602

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

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

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

Хитрый продавец Алекс Вокятов предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:

  • на каждый второй товар стоимостью больше 300  рублей предоставляется скидка 50%  ;
  • общая стоимость покупки со скидкой округляется вверх до целого числа рублей;
  • порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.

По известной стоимости каждого товара в покупке необходимо определить общую стоимость покупки с учётом скидки и стоимость самого дорогого товара, на который будет предоставлена скидки

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

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

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

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

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

(Excel / LibreOffice):

Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Верхнее число - это кол-во чисел, переносим его отдельно и стоимости товаров поднимаем на ячейку выше.

Сортируем числа по возрастанию.

Находим первое число, большее 300  , т.е. 301  и считаем, сколько осталось чисел. Их осталось 4840  , значит, на    2420  товаров будет применена скидка. Так как это должно быть выгодно продавцу, значит, скидка предоставляется на первые, самые дешевые, 2420  товара.

В любую удобную для Вас ячейку вставляем формулу =СУММ(A1:A5160;A7581:A10000) + СУММ(A5161:A7580) * 0,5, округление не потребовалось, так как число получилось целым.

Ответ: 21916001 5190

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

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

Продавец предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:
— на каждый второй товар стоимостью больше 50 рублей предоставляется скидка 25%;
— общая стоимость покупки со скидкой округляется вверх до целого числа рублей;
— порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.
По известной стоимости каждого товара в покупке необходимо определить общую стоимость покупки с учётом скидки и стоимость самого дорогого товара, на который будет предоставлена скидка.
Входные данные.
Первая строка входного файла 7.txt содержит число N — общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число — стоимость товара в рублях.
В ответе запишите два целых числа без пробелов и разделительных знаков: сначала общую стоимость покупки с учётом скидки, затем стоимость самого дорогого товара, на который будет предоставлена скидка.
Пример входного файла:
6
125
50
490
215
144
320
В данном случае товар стоимостью 50 не участвует в определении скидки, остальные товары продавцу выгодно расположить в таком порядке цен: 490, 125, 215, 144, 320. Тогда скидка предоставляется на товары стоимостью 125 и 144. Стоимость этих двух товаров со скидкой составит 201,75 руб., после округления — 202 руб. Общая стоимость покупки составит: 50 + 490 + 215 + 320 + 202 = 1277 руб.
Самый дорогой товар, на который будет получена скидка, стоит 144 руб. В ответе нужно записать числа 1277 и 144.

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

Открываем Excel, заходим в "Открыть"и выбираем текстовый документ из задачи. В вышедшем окне в первом пункте выбираем формат данных с разделителями. Во втором пункте помимо знака табуляции выбираем пробел. Формат данных столбца общий.

Перетаскиваем числа из первой строки в бок, чтобы не мешались. Пустую первую строку убираем(ПКМ на номер строки — удалить). Выделяем столбец с числами, нажимаем на "Сортировка и фильтр"(раздел "Главная справа), выбираем сортировку по возрастанию.

Товаров, которые дешевле 50 рублей, либо стоят 50 рублей, здесь 30. 1000-30=970 — количество товаров дороже 50 рублей, выделяем первую половину из них и применяем скидку. Начиная с A31 до A515 включительно, применяем формулу по типу =A31*0,75 в соседнем столбце. Изначальная стоимость последнего товара, на который применили скидку — 530, это пойдёт в ответ вторым числом.

Считаем сумму: =СУММ(A1:A30)+СУММ(B31:B515)+СУММ(A516:A1000). С округлением в большую сторону, выходит 478739.

Ответ: 478739530

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

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

Продавец предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:
— на каждый третий товар стоимостью больше 100 рублей предоставляется скидка 30%;
— общая стоимость покупки со скидкой округляется вверх до целого числа рублей;
— порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.
По известной стоимости каждого товара в покупке необходимо определить общую стоимость покупки с учётом скидки и стоимость самого дорогого товара, на который будет предоставлена скидка.
Входные данные.
Первая строка входного файла 8.txt содержит число N — общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число — стоимость товара в рублях.
В ответе запишите два целых числа без пробела: сначала общую стоимость покупки с учётом скидки, затем стоимость самого дорогого товара, на который будет предоставлена скидка.
Пример входного файла:
7
125
50
490
215
144
320
190
В данном случае товар стоимостью 50 не участвует в определении скидки, остальные товары продавцу выгодно расположить в таком порядке цен: 490, 215, 125, 320, 190, 144. Тогда скидка предоставляется на товары стоимостью 125 и 144. Стоимость этих двух товаров со скидкой составит 188,3 руб., после округления — 189 руб. Общая стоимость покупки составит: 50 + 490 + 215 + 320 + 190 + 189 = 1454 руб.
Самый дорогой товар, на который будет получена скидка, стоит 144 руб. В ответе нужно записать числа 1454 и 144.

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

Открываем Excel, заходим в "Открыть"и выбираем текстовый документ из задачи. В вышедшем окне в первом пункте выбираем формат данных с разделителями. Во втором пункте помимо знака табуляции выбираем пробел. Формат данных столбца общий.

Перетаскиваем числа из первой строки в бок, чтобы не мешались. Пустую первую строку убираем(ПКМ на номер строки — удалить). Выделяем столбец с числами, нажимаем на "Сортировка и фильтр"(раздел "Главная справа), выбираем сортировку по возрастанию.

Товаров, которые дешевле 100 рублей, либо стоят 100 рублей, здесь 94. 1000-94=906 — количество товаров со стоимостью 100 рублей и дороже, выделяем первую треть из них(302 товара) и применяем скидку. Начиная с A95 до A396 включительно, применяем формулу =A95*0,7 в соседнем столбце. Изначальная стоимость последнего товара, на который применили скидку — 397, это пойдёт в ответ вторым числом.

Считаем сумму: =СУММ(A1:A94)+СУММ(B95:B396)+СУММ(A397:A1000). С округлением в большую сторону, выходит 480786.

Ответ: 480786397

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

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

Продавец предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:
— на каждый второй товар стоимостью больше или равным 70 рублей предоставляется скидка 20%;
— общая стоимость покупки со скидкой округляется вверх до целого числа рублей;
— порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.
По известной стоимости каждого товара в покупке необходимо определить общую стоимость покупки с учётом скидки и стоимость самого дорогого товара, на который будет предоставлена скидка.
Входные данные.
Первая строка входного файла 26_3.txt содержит число N — общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число — стоимость товара в рублях.
В ответе запишите два целых числа через пробел: сначала общую стоимость покупки с учётом скидки, затем стоимость самого дорогого товара, на который будет предоставлена скидка.
Пример входного файла:
6
65
50
490
215
144
320
В данном случае товары стоимостью 50 и 65 не участвуют в определении скидки, остальные товары продавцу выгодно расположить в таком порядке цен: 490, 144, 320, 215. Тогда скидка предоставляется на товары стоимостью 144 и 215. Стоимость этих двух товаров со скидкой составит 287,2 руб., после округления — 288 руб. Общая стоимость покупки составит: 50 + 65 + 490 + 320 + 288 = 1213 руб.
Самый дорогой товар, на который будет получена скидка, стоит 215 руб. В ответе нужно записать числа 1213 и 215.

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

Сортируем по возрастанию. Первые 52 товара не участвуют в свкидке, так как меньше 70 рублей. Далее остается 948 товаров, которое участвуют в акции. Продавцу выгодно, чтобы по скидке покупались самые дешевые товары, поэтому по скидке пробьют первые 474 товара, а без скидке остальные 474, более дорогих, товара.

Посчитаем стоимость товаров со скидкой, они будут находится в диапазоне А53:А526: СУММ(А53:А526)*0,8 = 117108 руб.

Стоимость товаров, которые не попали под условия акции: СУММ(А1:А52) = 2234р.

Стоимость товаров, на которые не было скидки: СУММ(А527:А1000)=365575р.

Общая стоимость покупки: 2234+117108+365575=484917 руб.

Самый дорогой товар, на который была предоставлена скидка, находится в ячейке А526 = 539 руб.

В ответе запишем: 484917 539.

Ответ: 484917 539

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

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

Продавец предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:
— на каждый второй товар стоимостью больше 101 рубля предоставляется скидка 25%;
— общая стоимость покупки со скидкой округляется вверх до целого числа рублей;
— порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.
По известной стоимости каждого товара в покупке необходимо определить общую сумму скидки и стоимость самого дорогого товара, на который будет предоставлена скидка.
Входные данные.
Первая строка входного файла 26_23.txt содержит число N — общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число — стоимость товара в рублях.
В ответе запишите два целых числа без пробелов и разделителей: сначала общую сумму скидки, затем стоимость самого дорогого товара, на который будет предоставлена скидка.
Пример входного файла:
6
65
50
490
215
144
320
В данном случае товары стоимостью 50 и 65 не участвуют в определении скидки, остальные товары продавцу выгодно расположить в таком порядке цен: 490, 144, 320, 215. Тогда скидка предоставляется на товары стоимостью 144 и 215. Стоимость этих двух товаров со скидкой составит 269,25 руб., после округления — 270 руб. Тогда общая сумма скидки равна: 144+215-270 = 89 руб.
Самый дорогой товар, на который будет получена скидка, стоит 215 руб. В ответе нужно записать числа 89 и 215.

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

Сортируем по возрастанию. Первые 80 товаров не участвуют в скидке, так как меньше 102 рублей. Далее остается 920 товаров, которое участвуют в акции. Продавцу выгодно, чтобы по скидке покупались самые дешевые товары, поэтому по скидке пробьют первые 460 товаров.

Посчитаем стоимость товаров со скидкой, они будут находится в диапазоне А81:А540: СУММ(А81:А540)*0,25 = 37904.5 руб. Округляем в меньшую сторону и получаем 37904 руб. В меньшую сторону округляем, так как мы считает сумму скидки, а не итоговую сумму товаров.

Самый дорогой товар, на который была предоставлена скидка, находится в ячейке А540 = 556 руб.

В ответе запишем: 37904 556.

Ответ: 37904556

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

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

Продавец предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:
— на каждый четвертый товар стоимостью больше 153 рублей предоставляется скидка 40%;
— общая стоимость покупки со скидкой округляется вверх до целого числа рублей;
— порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.
По известной стоимости каждого товара в покупке необходимо определить общую стоимость покупки с учётом скидки и целую часть средней стоимости товаров, которые не участвуют в определении скидки.
Входные данные.
Первая строка входного файла 26_23.txt содержит число N — общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число — стоимость товара в рублях.
В ответе запишите два целых числа без пробелов и разделителей: сначала общую стоимость покупки с учётом скидки, потом целую часть средней стоимости товаров, которые не участвуют в определении скидки.
Пример входного файла:
6
65
50
490
215
164
320
В данном случае товары стоимостью 50 и 65 не участвуют в определении скидки, остальные товары продавцу выгодно расположить в таком порядке цен: 215, 320, 490, 164. Тогда скидка предоставляется на товар стоимостью 164 рубля. Стоимость этого товара со скидкой составит 98,4 руб., после округления — 99 руб. Тогда общая сумма покупки равна: 50+65+215+320+490+99= 1239 руб.
Средняя стоимость товаров, которые не участвуют в определении скидки: (50+65)/2 = 57,5. В ответе нужно записать числа 1239 и 57.

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

Решение с помощью электронных таблиц

Сортируем по возрастанию. Первые 136 товаров не участвуют в скидке, так как меньше 154 рублей. Далее остается 864 товара, которые участвуют в акции. Продавцу выгодно, чтобы по скидке покупались самые дешевые товары, поэтому по скидке пробьют первые 216 товаров.

Посчитаем стоимость товаров со скидкой, они будут находится в диапазоне А137:А352: = СУММ(А137:А352)*0,6 = 34543,8 руб. То есть 34544 рубля.

Стоимость товаров, которые не попали под условия акции: СУММ(А1:А136) = 11732р.

Стоимость товаров, на которые не было скидки: СУММ(А353:А1000)=444889р.

Общая стоимость покупки: 11732+34544+444889= 491165 руб.

Средняя часть стоимости товаров, которые не участвуют в орпделении скидки: =СРЗНАЧ(А1:А136)=86,2

В ответе запишем: 491165 86.

Решение с помощью программы

import math
f=open(’2.txt’)
n = int(f.readline())
prices = [int(f.readline()) for i in range(n)]
b153 = [price for price in prices if price > 153]
m153 = [price for price in prices if price <= 153]
b153.sort()
k = len(b153) // 4
for i in range(k):
    b153[i] *= 0.6
summa = sum(m153) + sum(b153)
summa = math.ceil(summa)
sr = sum(m153) / len(m153)
print(summa, int(sr))

Ответ: 49116586

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

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

Продавец предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:

— на каждый второй товар стоимостью больше 70 рублей предоставляется скидка 30%;

— общая стоимость покупки со скидкой округляется вверх до целого числа рублей;

— порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей;

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

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

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

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

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

Решение электронными таблицами

Открываем Excel, заходим в «Открыть» и выбираем текстовый документ из задачи. В вышедшем окне в первом пункте выбираем формат данных с разделителями. Во втором пункте помимо знака табуляции выбираем пробел. Формат данных столбца общий.

Перетаскиваем числа из первой строки в бок, чтобы не мешались. Пустую первую строку убираем(ПКМ на номер строки — удалить). Выделяем столбец с числами, нажимаем на «Сортировка и фильтр»(раздел «Главная» справа), выбираем сортировку по возрастанию.

Товаров, которые дешевле 70 рублей, либо стоят 70 рублей, здесь 1114. 7890-1114=6776 — количество товаров дороже 70 рублей, выделяем первую половину из них и применяем скидку. Начиная с A1115 до A4502 включительно, применяем формулу по типу =A1115*0,7 в соседнем столбце. Изначальная стоимость последнего товара, на который применили скидку — 284, это пойдёт в ответ вторым числом.

Считаем сумму: =СУММ(A1:A1114)+СУММ(B1115:B4502)+СУММ(A4503:A7890). С округлением в большую сторону, выходит 1784848.

Решение программой

Чтобы минимизировать скидку, нужно на вторые позиции в чеке поставить максимально дешёвые товары. Для этого отсортируем товары по возрастанию цены и отберём половину самых дешёвых товаров со стоимостью больше 70 рублей — их мы как раз и поставим на вторые позиции, добившись минимальной скидки.

from math import ceil

# Открываем файл
file = open("26.txt")

# Kоличество купленных товаров
n = int(file.readline())

# Сортировка всех цен по возрастанию
prices = sorted([int(i) for i in file])

# Товары дешевле 70 р, скидка не положена
full_prices = [i for i in prices if i <= 70]

# Остальные товары, дороже 70р, на них может быть скидка
maybe_discounted_prices = prices[len(full_prices):]

# Товары, на которые будет действовать скидка
discounted_prices = maybe_discounted_prices[:len(
    maybe_discounted_prices) // 2]

# Tовары, дороже 70р, на которые не будет скидки
not_discounted_prices = maybe_discounted_prices[len(
    maybe_discounted_prices) // 2:]

# Сумма стоимость всех товаров
print(ceil(sum(not_discounted_prices + full_prices) + sum(discounted_prices) * 0.7))

# Самый дорогой товар, на который предоставлена скидка
print(discounted_prices[-1])

Ответ: 1784848 284

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

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

В магазине электроники раз в месяц проводится распродажа. Из всех товаров выбирают K товаров с самой большой ценой и делают на них скидку в 30%, затем ещё M товаров с самой большой ценой и делают на них скидку 16%. По заданной информации о цене каждого из товаров и количестве товаров, на которые будет скидка, определите цену самого дорогого товара, не участвующего в распродаже, а также целую часть от суммы всех скидок.

Входные и выходные данные. В первой строке входного файла находятся три числа, записанные через пробел: N – общее количество цен (натуральное число, не превышающее 10 000), K – количество товаров со скидкой 30% и M – количество товаров со скидкой 16%. В следующих N строках находятся значения цены каждого из товаров (все числа натуральные, не превышающие 10 000), каждое в отдельной строке.

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

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

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

Сортируем данные столбца А по убыванию, таким образом, сверху получаем значения наибольших цен на товары. В ячейку B1  вписываем формулу, которая будет считать скидку на первые 100 единиц товара: = A1∗ 0,3  . Растягиваем её вниз до 100 строки. В ячейке B101  будем считать скидку в 16%: = A101 ∗0,16  . И также растягиваем эту формулу вниз до ячейки B250

Цена первого самого дорогого товара без скидок стоит в ячейке B251  . Сумма всех скидок равна сумме всех значений в столбце В - 484276

Ответ: 484276 7500

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

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

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

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

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

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

Открываем программу Excel и загружаем в неё наш файл. Сортируем данные столбца А по убыванию. Найдём сумму, которую заплатит покупатель. В ячейку B1  записываем формулу: =  ЕСЛИ(  ОСТАТ(  СТРОКА(A1 );10) = 0;0;A1 )  и в отдельной ячейке с помощью формулы =  СУММ(B : B)  считаем общую сумму товаров. Полученное число будет являться ответом на первый вопрос.

Для ответа на второй вопрос исходные данные скопируем в отдельный столбец D и отсортируем их по возрастанию. Так как общее число покупок равно 10000, то кассовый аппарат пробьет скидку ровно на 1000 из них. Значит, все товары с 1 по 1000 будут идти покупателю бесплатно. Посчитаем сумму товаров с 1001 по 10000: =  СУММ(D1001 : D10000)  . Полученное значение и будет являться ответом.

Ответ: 45364100 49884540

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

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

В магазине электроники раз в месяц проводится распродажа. Из всех товаров выбирают K товаров с самой большой ценой и делают на них скидку в 20%, затем ещё M товаров с самой большой ценой и делают на них скидку 10%. По заданной информации о цене каждого из товаров и количестве товаров, на которые будет скидка, определите цену самого дорогого товара, не участвующего в распродаже, а также целую часть от суммы всех скидок.

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

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

Открываем программу Excel и загружаем в неё наш файл. Сортируем столбец А во убыванию, так как скидка накладывается на самые дорогие товары. С помощью формулы =  A1⋅0,2  считаем скидку на первый товар и растягиваем её вниз до строки под номером 100. Таким образом, мы посчитали скидку на 100 первых самых дорогих товара. Начиная со строки 101 вписываем формулу A101 ⋅0,1  до строки 250, таким образом, мы считает скидку 10% на следующие 150 товаров.

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

Для того, чтобы найти сумму всех скидок, воспользуемся формулой =  СУММ(B : B )  .

Ответ: 314590 7500

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

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

Магазин предоставляет оптовому покупателю скидку по следующим правилам:

– на каждый третий товар ценой больше 401 рубля предоставляется скидка 25%;

– общая цена покупки со скидкой округляется вверх до целого числа рублей;

– порядок товаров в списке определяет магазин и делает это так, чтобы общая сумма скидки была наименьшей.

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

Входные данные. Первая строка входного файла 26_3.txt содержит число N – общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число – цену товара в рублях. В ответе запишите два целых числа: сначала общую цену покупки с учетом скидки, затем цену самого дорогого товара, на который предоставлена скидка.

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

Идея решения в том, чтобы на третьи места в чеке поставить максимально дешёвые товары. Для этого отсортируем цены по возрастанию и отберём из них те, на которые возможна скидка, то есть дороже 401 рубля.

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

# Для округления вверх
from math import ceil


# Считаем файл
file = open("26_3.txt")
n = int(file.readline())
# Отсортируем числа по возрастанию
prices = sorted([int(i) for i in file])

# Список товаров по полной цене
full_prices = []
# Список товаров, на которые возможна скидка
maybe_discounted_prices = []

# Проходимся по товарам и определяем, может ли на них быть скидка
for i in prices:
    if i < 402:
        full_prices.append(i)
    else:
        maybe_discounted_prices.append(i)

# В итоговую сумму добавим все товары для которых скидка невозможна
summ = sum(full_prices)

# Количество товаров по скидке
count_discounts = len(maybe_discounted_prices) // 3
# Самый дорогой товар, на который будет скидка
max_discount = maybe_discounted_prices[count_discounts - 1]

# Посчитаем товары со скидкой
for i in range(count_discounts):
    summ += maybe_discounted_prices[i] * 0.75
# Посчитаем остальные товары без скидки
for i in range(count_discounts, len(maybe_discounted_prices)):
    summ += maybe_discounted_prices[i]

# Округляем сумму
summ = ceil(summ)

# Выводим ответ
print(summ, max_discount)
                                                                                                  
                                                                                                  

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