QOJ.ac

QOJ

時間限制: 1 s 記憶體限制: 1024 MB 總分: 100

#516. 罗马假日

统计

古罗马人创造了许多重要的事物:渡槽、笔直的道路、托加长袍,以及那些会喷射烟火的蜡烛。但最无用的莫过于罗马数字,这是一种表示正整数的极其笨拙的方式。

罗马数字系统使用七个不同的字母,每个字母代表不同的数值:字母 I 代表 1,V 代表 5,X 代表 10,L 代表 50,C 代表 100,D 代表 500,M 代表 1000。这些字母可以组合成以下基准值:

1 2 3 4 5 6 7 8 9 10
I II III IV V VI VII VIII IX X
10 20 30 40 50 60 70 80 90 100
X XX XXX XL L LX LXX LXXX XC C
100 200 300 400 500 600 700 800 900 1000
C CC CCC CD D DC DCC DCCC CM M

非基准值数字 $x$ 的罗马数字表示法,是通过首先将 $x$ 分解为基准值之和,然后将每个基准值从大到小翻译得到的。在选择基准值时,总是先选择最大的且 $\le x$ 的值,然后选择最大的且 $\le$ 剩余数值的值,依此类推。因此 $14 = 10 + 4 = \text{XIV}$,$792 = 700 + 90 + 2 = \text{DCCXCII}$。大于 $1000$ 的数字使用尽可能多的 M。因此 $2018 = \text{MMXVIII}$,而 $1000000$ 将是一个由一千个 M 组成的字符串(这就是第一段中提到“笨拙”的原因)。

罗马数字表示法为正整数提供了一种新的排序方式。如果我们把每个整数的罗马数字表示看作一个单词,我们现在可以按字母顺序对它们进行排序。如果一个单词 $A$ 是另一个单词 $B$ 的前缀,则 $A$ 排在前面。我们将这种排序称为正整数的“罗马排序”。因此,罗马排序中的第一个数字是 C(在我们的系统中为 100)。接下来的三个数字是 CC、CCC 和 CCCI,依此类推。

注意在罗马排序中,所有大于 $1000$ 的数字都会排在任何以 V 或 X 开头的数字之前。事实上,最后一个数字是 XXXVIII。在本题中,你将获得一个或多个正整数,必须确定它们在罗马排序中的位置——根据情况,从前往后或从后往前计数。

输入格式

输入以一个正整数 $n \le 100$ 开始,表示随后要处理的正整数个数,每个数字占一行。这些剩余的每个数字均 $\le 10^9$。

输出格式

对于每个值($n$ 除外),输出该整数在罗马排序中的位置,每行一个。如果位置是相对于罗马排序末尾的,则输出负数。例如,38 在罗马排序中的位置是 $-1$,37 的位置是 $-2$,依此类推。

样例

样例输入 1

3
100
101
38

样例输出 1

1
302
-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.