Из этой задачи вы узнаете полезный трюк, часто используемый в статистических подсчетах.
Представьте, что лесник пытается сосчитать сосны, ели и березы на участке леса. Он может обойти весь участок трижды, сосчитав сначала только сосны, потом только ели и в третий раз только березы.
Конечно, более эффективно обойти лес только один раз, отмечая крестиками сосны на одной странице блокнота, ели на другой и березы на третьей. Потом останется только сосчитать количество крестиков на каждой странице. Аналогичная идея работает для подсчета схожих элементов в последовательности или наборе, с использованием массива счетчиков (в качестве блокнота со страницами).
Дан массив длины M
с числами в диапазоне 1 ... N
, где N
не больше 20
.
Вам нужно пройти по этому массиву и сосчитать сколько раз встречается каждое число.
Таким образом задача похожа на Подсчет Гласных, но теперь вам нужно работать более чем с одним счетчиком.
Пожалуйста, не используйте 20 отдельных переменных для счетчиков, а сделайте один массив из них.
Входные данные содержат M
и N
в первой строке.
Вторая строка (довольно длинная) содержит M
чисел, через пробел.
Ответ должен содержать ровно N
чисел, разделенных пробелами. Первое должно означать количество единиц
в исходном массиве, второе - количество двоек и так далее.
Пример:
входные данные:
10 3
1 2 3 2 3 1 1 1 1 3
ответ:
5 2 3