Problem A: 罗马数字转换

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:48 Solved:29

Description

       罗马数字包含以下七种字符: I=1V=5X=10L=50C=100D=500 M=1000

       例如, 罗马数字 2 写做 II ,即为两个并列的 I 12 写做 XII ,即为 X + II

      通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数5减小数1得到的数值4 。同样地,数字9表示为 IX。这个特殊的规则只适用于以下六种情况:

       I  可以放在 V (5) X (10) 的左边,来表示 4 9

       X 可以放在 L (50) C (100) 的左边,来表示 40 90

       C 可以放在 D (500) M (1000) 的左边,来表示 400 900

       现给定一个有效的罗马数字 字符串 s,请将其转换成整数。

Input

    输入一行字符串s,为有效的罗马数字。

Output

    输出一个对应罗马数字的十进制整数。


Sample Input Copy

CXVIV

Sample Output Copy

119

HINT

提示:
  • s 的长度<=15
  • 题目数据保证 s 是一个有效的罗马数字,且表示整数在范围 [1, 3999] 内
  • 题目所给测试用例皆符合罗马数字书写规则,不会出现跨位等情况。
  • IL 和 IM 这样的例子并不符合题目要求,49 应该写作 XLIX,999 应该写作 CMXCIX 。