U497976 罗马数字

题目背景

roma

题目描述

写一个程序将一个正整数转换为“罗马数字”。 假定构造罗马数字的规则如下:在罗马数字系统中,$i$ 代表 $1$,$v$ 代表 $5$,$x$ 代表 $10$,$1$ 代表 $50$, $e$ 代表 $100$,$d$ 代表 $500$,$m$ 代表 $1000$。代表大数的符号通常出现在代表小数的符号之前,一个罗马数字的值一般是它们所代表的数之和。例如,$ⅱ$ 代表 $2$,$viii$ 代表 $8$。然而,如果代表小数的符号出现在代表大数的符号之前,这两个符号的值就是它们所代表的值的差。例如,$iv$ 代表 $4$, $ix$ 代表 $9$,$lix$ 代表 $59$。记住,在罗马数字里,不能有四个相连的符号都是相同的。例如,$iv$ 代表 $4$,但是 $iii$ 不行。按照这样的规则,构造出的罗马数字可能不是唯一的,例如 $mcmxc$ 和 $mxm$ 都代表 $1990$。虽然程序构造出的罗马数字不需要是最短的,但是不要用 $vv$ 代表 $10$, $ll$ 代表 $100$,$dd$ 代表 $1000$,或者 $vvv$ 代表 $15$ 等。

输入格式

一行一个正整数 $x$,保证 $x$ 小于 $5000$。

输出格式

一行字符串,表示 $x$ 的罗马数字形式。