#P2685. Numeral System

    ID: 1685 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>字符串哈希和哈希表模拟Japan 2005 Domestic

Numeral System

描述

八王子教授设计了一种新的整数数字系统,由四个小写字母 mcxi 和八个数字 23456789 组成。他在这个系统中不使用数字 0 或数字 1

字母 mcxi 分别对应 10001000100100101011,数字 2、...、9 分别对应 22、...、99。这个系统与罗马数字系统无关。

例如,字符串 5m2c3x4im2c4i5m2c3x 分别对应整数 52345234($=5 \times 1000 + 2 \times 100 + 3 \times 10 + 4 \times 1$)、12041204=1000+2×100+4×1=1000 + 2 \times 100 + 4 \times 1)和 52305230=5×1000+2×100+3×10=5 \times 1000 + 2 \times 100 + 3 \times 10)。上面例子中的字符串部分 5m2c3x4i 分别代表 50005000=5×1000=5 \times 1000)、200200=2×100=2 \times 100)、3030=3×10=3 \times 10)和 44=4×1=4 \times 1)。

每个字母 mcxi 都可以以数字 23、...、9 之一为前缀。在这种情况下,前缀数字和字母被视为一对。由前缀数字和字母组成的对对应于一个整数,该整数等于字母的原始值乘以前缀数字的值。

对于每个字母 mcxi,它在字符串中出现的次数最多为 11。当它有前缀数字时,它应该与前缀数字一起出现。字母 mcxi 必须按此顺序从左到右出现。此外,当字符串中存在数字时,它应显示为以下字母的前缀数字。字符串中的每个字母都可以省略,但整个字符串不能为空。以这种方式创建的字符串称为 MCXI 字符串

MCXI 字符串对应于一个正整数,该整数是如上所述的字母值与其中包含的对值之和。对应于 MCXI 字符串的正整数称为其 MCXI 值。此外,给定一个从 1199999999 的整数,有一个唯一的 MCXI 字符串,其 MCXI 值等于给定的整数。例如,MCXI 字符串 m2c4i 的 MCXI 值为 12041204,等于 1000+2×100+4×11000 + 2 \times 100 + 4 \times 1。没有 MCXI 字符串,只有对应于 12041204m2c4i。请注意,字符串 1m2c4imcc4im2c0x4i2cm4i 不是有效的 MCXI 字符串。原因分别是使用 1、多次出现 c、使用 0 以及 cm 的顺序错误。

你的工作是为八王子教授编写一个程序,该程序读取两个 MCXI 字符串,计算它们的 MCXI 值之和,并打印与结果对应的 MCXI 字符串


输入

输入如下。第一行包含一个正整数 nn<=500<= 500),表示以下行的编号。第 k+1k+1 行是第 kk 个计算的规范(k=1,,nk=1, \dots, n)。

nn

规范11

规范22

...

规范nn

每个规范都用一行来描述:

MCXIMCXI-字符串11 MCXIMCXI-字符串22

两个 MCXI 字符串用空格分隔。

您可以假设每个规范中两个 MCXI 字符串的两个 MCXI 值之和小于或等于 99999999


输出

对于每个规范,您的程序应该在一行中打印一个 MCXI 字符串。它的 MCXI 值应该是规范中 MCXI 字符串的两个 MCXI 值之和。输出中不应显示其他字符。


输入数据 1

10
xi x9i
i 9i
c2x2i 4c8x8i
m2ci 4m7c9x8i
9c9x9i i
i 9m9c9x8i
m i
i m
m9i i
9m8c7xi c2x8i

输出数据 1

3x
x
6cx
5m9c9x9i
m
9m9c9x9i
mi
mi
mx
9m9c9x9i

来源

日本 2005 国内