Array Counters

Problem #21

Tags: loops arrays simple

Who solved this?

Back to English version

Из этой задачи вы узнаете полезный трюк, часто используемый в статистических подсчетах.

Представьте, что лесник пытается сосчитать сосны, ели и березы на участке леса. Он может обойти весь участок трижды, сосчитав сначала только сосны, потом только ели и в третий раз только березы.

Конечно, более эффективно обойти лес только один раз, отмечая крестиками сосны на одной странице блокнота, ели на другой и березы на третьей. Потом останется только сосчитать количество крестиков на каждой странице. Аналогичная идея работает для подсчета схожих элементов в последовательности или наборе, с использованием массива счетчиков (в качестве блокнота со страницами).

Дан массив длины 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
You need to login to get test data and submit solution.