200249 - 利用数组下标来排序和统计

时间限制

1000 毫秒

内存限制

128 MB

通过次数

3

提交次数

3

给出n0-9之间整数,按0-9的顺序输出每个数字出现的次数。

输入

第一行,一个整数n,表示数据个数。

第二行,n0-9之间的整数,表示各个数据。

对于100%的数据:

1\le n \le 10^2

输出

一行,表示0-9出现的次数。

样例

输入

3
9 5 0

输出

1 0 0 0 0 1 0 0 0 1

输入

9
0 0 0 0 0 0 0 0 0

输出

9 0 0 0 0 0 0 0 0 0

输入

11
0 1 2 3 4 5 6 7 8 9 0

输出

2 1 1 1 1 1 1 1 1 1

提示

作为初学者最容易想到的方法是把输入读到数组里,然后循环查找0出现的次数,1出现的次数,2出现的次数……这样可以完成任务,但如果我们充分利用数组下标,就可以发现一个非常牛的方法:

将对应的数字累加在相同的下标里,例如:0的个数记录在a[0]里,1的个数记录在a[1]里;即cin>>v;a[v]++;

奇迹就这样发生了:当循环结束时,a[0]中保存的就是输入中有多少个0,a[1]中保存的就是输入中有多少个1...a[9]中保存的就是输入了多少个9。

当读入完数据时,排序已经结束了,只需用循环把a[0]到a[9]中的数字(当前下标输入了多少次)输出即可!

当你自己写好这份代码时,你就学会了桶排序——一种既简单又高效的排序算法。