• Предмет: Информатика
  • Автор: magic8738ovwwoa
  • Вопрос задан 1 год назад

У Поликарпа есть n монет, достоинство i-й монеты равно ai. Поликарп хочет распределить монеты по своим карманам, но он не может класть две монеты одинакового достоинства в один и тот же карман.

Например, елси у Поликарпа есть шесть монет, представленных в виде массива a=[1,2,4,3,3,2], он может распределить их по двум карманам следующим образом: [1,2,3],[2,3,4].

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

Входные данные
Первая строка входных данных содержит одно целое число n (1≤n≤100) — количество монет.

Вторая строка входных данных содержит n целых чисел a1,a2,…,an (1≤ai≤100) — достоинства монет.

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

Примеры
входные данные
6
1 2 4 3 3 2
выходные данные
2
входные данные
1
100
выходные данные
1


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

Ответы

Ответ дал: artemzinatulin643
0

Ответ:

Объяснение:

Python

input()

a = list(map(int, input().split()))

print(max(a.count(i) for i in a))

C++ 17

#include<bits/stdc++.h>

using namespace std;

main(){

   int a[1001],b[10001],n,i,m=0;

   cin>>n;

   for(i=1;i<=n;i++){

       cin>>a[i]; b[a[i]]++;

   }

   for(i=1;i<=1000;i++){

       m=max(m,b[i]);

   }

   cout<<m;

}

Вас заинтересует