CF61C Capture Valerian
题目描述
现在是公元 $260$ 年。Shapur 由于极其聪明,成为了波斯国王。现在他被称为伊朗和安伊朗的国王之王陛下 Shapur。
最近,罗马人对波斯宣战。他们妄想占领亚美尼亚。在最近的战争中,罗马人惨败。如今他们的高级将军 Philip 被 Shapur 俘虏,Shapur 现在正准备俘获罗马皇帝 Valerian。
在惨败后,胆小的 Valerian 躲藏在他城堡顶上的一个房间里。为了抓到他,Shapur 必须打开许多门。幸运的是,Valerian 太过于害怕,以至于没有给门上安装坚不可摧的锁。
每扇门由 $4$ 个部分组成。第一部分是一个整数 $a$。第二部分要么是一个整数 $b$,要么是一个非常奇怪的记号,看起来像 R。第三部分是一个整数 $c$,第四部分是空的!似乎就是留给写点什么用的。Shapur 非常聪明,在打开前几道门后就发现了这些锁的秘密。
$c$ 是一个以 $a$ 进制书写的整数,要打开门,你需要把它写成 $b$ 进制。如果出现 R,这其实是一种只在罗马帝国使用的特殊计数系统,所以开门可没那么简单!
下面解释这种非常奇怪、甚至没有零的数字系统:
罗马数字基于七个符号:一根竖线(用字母 I 表示,代表 $1$),大括号符号(用字母 V 表示,代表 $5$),叉号(用字母 X 表示,代表 $10$),C 代表一百(Centum),等等:
- I = $1$
- V = $5$
- X = $10$
- L = $50$
- C = $100$
- D = $500$
- M = $1000$
符号通过迭代产生为十进制( $1$、$10$、$100$、$1,000$)的倍数,V、L、D 代表五的倍数,迭代继续:I 是 $1$,II 是 $2$,III 是 $3$,V 是 $5$,VI 是 $6$,VII 是 $7$,以此类推,其他基数同理:X 是 $10$,XX 是 $20$,XXX 是 $30$,L 是 $50$,LXXX 是 $80$;CC 是 $200$,DCC 是 $700$,等等。在第 $4$ 和第 $9$ 次迭代时,需要使用减法原则,将较小的数字放在较大的数字之前:IV ($4$)、IX ($9$)、XL ($40$)、XC ($90$)、CD ($400$)、CM ($900$)。
同时,在大于 $10$ 的进制中,用 A 表示 $10$,B 表示 $11$,以此类推。
请帮助 Shapur 捉住 Valerian,并为波斯,尤其是亚美尼亚带来和平。
输入格式
第一行包含两个整数 $a$ 和 $b$($2 \leq a,b \leq 25$)。其中 $b$ 可能会被 R 替代,表示罗马数字系统。
下一行包含一个以 $a$ 进制表示的不包含负号的整数 $c$,它可能包含前导零,但长度不超过 $10^3$。
保证如果出现罗马数字,则该数不超过 $3000_{10}$,且不会为 $0$。在其他情况下,该数不会大于 $10^{15}_{10}$。
输出格式
输出一行,将整数 $c$ 用 $b$ 进制表示。必须省略前导零。
说明/提示
你可以在这里找到更多关于罗马数字的信息:http://en.wikipedia.org/wiki/Roman\_numerals
由 ChatGPT 5 翻译