CFCF2170D.Almost Roman
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
我们定义一个只包含字母 “XVI” 的字符串的值如下:
- 字母 'X' 的值为 10;
- 字母 'V' 的值为 5;
- 字母 'I' 的值为 1 或 −1:如果它后面的位置上是字母 'X' 或 'V',则为 −1;否则为 1;
- 整个字符串的值等于其中所有字母值的总和。
现在你得到了一个仅包含字符 “XVI?” 的字符串,并会询问 q 次。
在第 i 次询问时,会给出三个整数:
- cX, cV, cI ——分别代表可用字母 'X'、'V' 和 'I' 的数量。
你需要求出,若将字符串中的所有问号用字母 'X'、'V'、'I' 替换(要求每种字母的使用次数不超过其可用数量),该字符串可以得到的最小值是多少。
输入格式
第一行包含一个整数 t(1≤t≤104)——表示测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 q(1≤n,q≤3×105)——表示字符串长度和询问数。
第二行给出一个长度为 n 的字符串,字符串仅由 'X'、'V'、'I'、'?' 构成。
接下来的 q 行,每行包含三个整数 cX, cV, cI(0≤cX,cV,cI≤n)——分别表示本次查询可用的 'X'、'V'、'I' 的个数。
【附加输入约束】
- 所有测试用例中 n 的总和不超过 3×105;
- 所有测试用例中 q 的总和不超过 3×105;
- 对于每个询问都有 cX+cV+cI 大于等于字符串中问号 '?' 的数量。
输出格式
对于每个询问,输出一个整数——表示将所有问号替换为可用字母后,字符串可能取得的最小值。
输入输出样例
输入#1
4 3 3 ??? 3 0 0 2 3 1 0 1 2 10 7 ??IV?VXIV? 0 0 4 4 4 0 1 1 2 1 1 3 1 1 4 1 2 1 2 2 0 9 5 ?V????IVV 9 2 4 4 1 5 0 1 4 4 8 1 3 2 7 3 2 I?V 0 1 0 0 0 1
输出#1
30 9 5 25 43 36 27 25 42 53 19 17 19 33 17 9 5