U549254 期末作业(homework)

题目背景

又到了期末考试的时间,小A在认真复习整理她的平时作业。但是她平时喜欢用中文命名每次作业,于是她在她的电脑上发现了这样神奇的一幕: ![](https://cdn.luogu.com.cn/upload/image_hosting/uqcufrsg.png) 小A非常困惑为什么这样排序,经过她的观察,她猜想可能是按照拼音的字典序进行排序的。由于小A有太多作业了,她只需要复习 $n$ 份老师划重点的作业,所以她希望你能够帮助她,用这种方式给划重点的作业排序,节省小A的检索时间。

题目描述

形式化的说,给定一个包含 $n$ 个整数的数组,请将这些整数按照给定的中文读音拼音的字典序进行排序,并输出排序后的结果。由于不同人读的习惯不一样,小A在这里强制规定: * 从高位到低位,依次读每一位的中文拼音 * 特殊读法: 当 $2$ 放在开头时,且 $2$ 不在个位和十位,此时 $2$读作liang. * 特定读法: 十位:如果是 $10$,读作yi shi,如 $13$ 是yi shi san。如果有前缀,如 $213$,是 liang bai yi shi san。 百位:直接加单位bai,如 $202$ 是liang bai ling er,$220$ 是liang bai er shi。 千位:加单位qian,如 $3210$ 是san qian er bai yi shi. 万位:加单位wan,如 $22234$ 是liang wan er qian er bai san shi si 。 * 零的读法: 连续的零只读一个 ling。例如: $1010$ 读作 yi qian ling yi shi,$10010$ 读作 yi wan ling yi shi。 如果零在数字末尾,则不读出。例如:$1000$读作yi qian,而不是yi qian ling。$0$ 如果有间隔的零,则都需要读。例如: $40201$ 读作si wan ling er bai ling yi。 如果前一位是零,且当前位非零,需要明确读出ling。 * 单位的处理: 每一位的数字如果是非零,都需要加上单位:万、千、百、十,除了最后一位。 | 数 | 读法 | | :----------: | :----------: | | 10100 | yi wan ling yi bai | | 20013 | liang wan ling yi shi san | | 22311 | liang wan er qian san bai yi shi yi | | 3251 | san qian er bai wu shi yi | | 2222 | liang qian er bai er shi er | | 1015 | yi qian ling yi shi wu | | 1296 | yi qian er bai jiu shi liu | | 218 | liang bai yi shi ba | | 207 | liang bai ling qi | | 101 | yi bai ling yi | | 24 | er shi si | | 2 | er | | 0 | ling |

输入格式

输入共包含两行,其中第一行包含一个正整数 $n$,表示数组的长度第二行包含 $n$ 个整数,由空格隔开,表示数组中的整数。

输出格式

输出共有 $n$ 行,每行包含 $1$ 个整数,表示排序后的结果。

说明/提示

对于 $30\%$ 的数据,$0≤a_i \le 9$。 对于另外 $20\%$ 的数据,$1≤n≤20$。 对于另外 $20\%$ 数据,$0≤a_i\le999$。 对于另外 $20\%$ 数据,$0≤a_i\le9999$。 对于 $100\%$ 的数据,$1≤n\le1000,0≤a_i\le99999$。