#L4228. 「ROI 2021 Day2」莫斯科数字
「ROI 2021 Day2」莫斯科数字
题目描述
译自 ROI 2021 Day2 T1. Московские числа
你可能听说过罗马数字,也可能听过「莫斯科是第三罗马」这句话。因此,我们决定借鉴罗马数字,发明一种高级版本——莫斯科数字。
莫斯科数字的数字是从 A 到 Z 的大写英文字母。一个数字是由多个字母组成的字符串。每个字母对应一个数值:
| 字母 | 数值 | 字母 | 数值 | 字母 | 数值 | 字母 | 数值 |
|---|---|---|---|---|---|---|---|
| A | H | O | V | ||||
| B | I | P | W | ||||
| C | J | Q | X | ||||
| D | K | R | Y | ||||
| E | L | S | Z | ||||
| F | M | T | |||||
| G | N | U | |||||
数字的值等于组成它的各个字母的贡献之和。字母的贡献可以是正的,也可以是负的。如果字母右边没有比它大的字母,那么它的贡献等于它的数值。否则,它的贡献等于它的数值取负。
例如:
BBA的值是 ;BBBC的值是 ;ABC的值是 ;BAC的值是 ;ACA的值是 。
你得到了一些数字模板。每个模板是由大写英文字母和问号组成的字符串。对于每个模板,需要确定如果将每个问号替换为莫斯科数字的字母,能得到的最大数字是多少。
输入格式
第一行包含一个整数 ,表示模板的数量。
接下来的 行,每行是一个由大写英文字母和问号组成的字符串 。所有字符串的总长度不超过 。
输出格式
对于每个模板,输出两行。第一行输出可以得到的最大数字的值(十进制表示)。第二行输出将问号替换为字母后的模板,使其达到最大值。
样例
输入
4
BBBC
????
A?B?C?D
YYYYY?
输出
-5
BBBC
20000000000000
ZZZZ
15000000000034
AZBZCZD
6000000000000
YYYYYY
数据范围与提示
令所有字符串的总长度为 。
详细子任务附加限制及分值如下表所示。其中子任务 是样例。
| 子任务 | 分值 | 的限制 | 附加限制 | 子任务依赖 |
|---|---|---|---|---|
| 1 | 不包含问号 | |||
| 2 | 1 | |||
| 3 | 包含不超过三个问号 | |||
| 4 | 无 | 0, 1, 3 | ||
| 5 | 0, 1~4 |