Олимпиадный тренинг

Задача . C. Упаковка коробок


У Мишки есть n пустых коробок. Для каждого i (1 ≤ i ≤ n) i-я коробка — это куб со стороной длины ai.

Мишка может положить коробку i в другую коробку j, если соблюдаются следующие условия:

  • i-я коробка не лежит в другой коробке;
  • j-я коробка не содержит других коробок;
  • коробка i меньше коробки j (ai < aj).

Мишка может сколько угодно раз класть коробки друг в друга. Он хочет минимизировать количество видимых коробок. Коробка называется видимой, если она не лежит в какой-либо коробке.

Помогите Мишке определить минимальное возможное количество видимых коробок!

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

В первой строке записано одно целое число n (1 ≤ n ≤ 5000) — количество коробок у Мишки.

Во второй строке записаны n целых чисел a1, a2, ..., an (1 ≤ ai ≤ 109), где ai — длина стороны i-й коробки.

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

Выведите минимальное количество видимых коробок.

Примечание

В первом примере можно поместить коробку 1 в коробку 2 и 2 в 3.

Во втором примере можно поместить коробку 2 в коробку 3 и 4 в 1.


Примеры
Входные данныеВыходные данные
1 3
1 2 3
1
2 4
4 2 4 3
2

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя