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

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

Задача 1#56571

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

Робот складывает монеты в ящики. Задача робота заполнить как можно большее количество ящиков монетами в количестве 100  штук. Роботу по конвейеру поступают корзины с монетами. В каждой корзине может быть от 1  до     99  монет. Известно, что робот может высыпать в ящик содержимое не более двух корзин. Корзина должна быть высыпана в ящик полностью. Необходимо определить, сколько ящиков можно заполнить монетами так, чтобы в каждом из них было ровно по 100  монет.

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

В первой строке записано число N  – количество корзин, в каждой из последующих N  строк число K  – количество монет в каждой корзине.

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

В ответе запишите одно число – количество ящиков, заполненными 100  монетами.

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

7

10

44

66

90

65

47

34

При таких исходных данных можно заполнить только 2  ящика по 100  монет 10  + 90  и 66  + 34  . Ответ: 2  .

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

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Посчитаем корзины с определенным количеством монет, для этого заполним ячейки столбца B  цифрами от 1 до 99, и воспользуемся функцией СЧЁТЕСЛИ. Запишем в ячейку C1  следующую формулу =СЧЁТЕСЛИ(A1:A10000;B1), скопируем её на свободные клеточки столбца. Для удобства перенесем получившуюся таблицу на новый лист. Разделим данные таблицы на два столбца, перенесем значения A51  :B99  во второй столбец и воспользуемся настраиваемой сортировкой по убыванию. Посчитаем количество ящиков, которое можно сформировать. Для этого выберем минимум из количества корзин, в которых содержится 1 и 99 монет или 2 и 98 монет и тд. Заметим, что корзина с 50 монетами встречается четное количество раз, значит можно сформировать в два раза меньше ящиков, чем общее количество корзин. Общее количество получившихся ящиков равно 4653.

Решение 2 (Python)

f = open("26.txt")
n=int(f.readline())
array=[int(n) for n in f.readlines()]
array.sort()
counter = 0
for i in range(0, n - 1):
    for j in range(n - 1, i, -1):
        if (array[i] + array[j] == 100 and array[i] != 0 and array[j] != 0):
            counter += 1
            array[j] = 0
            break
print(counter)

Ответ: 4653

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное обучение
в Школково

Для детей ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Брянской областей, а также школьникам, находящимся в пунктах временного размещения Крыма обучение на платформе бесплатное.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ или олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

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