最优休止符

成绩 0 开启时间 2012年10月18日 星期四 05:35
折扣 0.8 折扣时间 2012年10月18日 星期四 05:35
允许迟交 关闭时间 2012年10月18日 星期四 05:35

3.1 Description
Music Marco Language(MML) 是一种利用纯文本文件记录乐谱的语
言。在这道题中,我们只对它的“休止” 记号感兴趣。每一个休止记号都是
以‘R’ 打头,紧随一个说明符。说明符可以是这几个字符串:‘1’,‘2’,‘4’,
‘8’,‘16’,‘32’,‘64’,依次代表休止一个单位、半个单位、1/4
个单位、1/8个单位、1/16个单位、1/32个单位、1/64个单位。这些数字被称为“基本休
止”,它们后面还可以跟随一个或多个点,第一个点代表再休止基本休止
的一半,第二个点代表再休止基本休止的1/4,……。例如,‘R4.’ 代表休止
1/4 + 1/8个单位,换一句话说,‘R4.’ 等价于‘R4R8’。再比如说‘R4...’ 代表休
止1/4 + 1/8 + 1/16 + 1/32个单位。任何一个‘.’ 代表的休止不能小于1/64个单位,所
以说‘R64.’ 和‘R16...’ 都是不合法的,因为最后一个‘.’ 代表的是1/128个单位
的休止。
很明显,一个休止序列存在很多的等价写法,你要找到最短的那个。
3.2 Input
输入文件每行一个非空字符串,代表一个合法的休止序列,你可以认
为这个序列不会包含超过100000 个字符。你的程序应该依次处理每个字符
串直到文件结束。
3.3 Output
每行输出一个字符串,代表最短的等价表示。如果存在多个最短的等
价表示,输出字典序最小的那个。
3.4 Example(s)
Input
R2R2
R1R2R4R8R16R32R64
R1R4R16

Output
R1
R1......
R16R1R4