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

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

Задача 1#56330

На кондитерской фабрике есть 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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