SP11495 RPLI - Ignore the bounds

题目描述

Luis 看到他的儿子在玩游戏,便好奇地问他游戏的内容。儿子回答说:“游戏是这样的:你有一个大数,一个界限,还有一个‘模’(即某个数除以‘模’后的余数)。游戏的目标是根据以下规则找出最大可能的子序列:” 1. 选出的序列的数字不能低于第一个被选中的数字。 2. 选出的子序列**不能**超过界限。例如,假如第一个数字是 'd',界限是 'k',那么可以选出的数字范围是 \[d, \min(d+k, 9)\]。 3. 你可以从大数中的任意一个数字开始选择。 4. 对于任何一个起始点,应该寻找在模运算后得到的最大数。 Luis 有些惊讶地听完了,便请求儿子举个例子。儿子说:“假设有一个数 56789,界限是 2,模是 10。如果从 5 开始,因为界限是 2,最多可以选择到 7(这意味着你可以选择 5、6 和 7)。形成一个子序列可以是 ‘5+6+7’。根据规则,我们还可以得到其他子序列:‘6+7+8’、‘7+8+9’、‘8+9’ 和 ‘9’。经过模运算后,你会找到最大余数是 9,来自子序列 ‘9’。” Luis 曾经是一名程序员,但不再像年轻时那样熟练。请根据规则帮助他完成任务。

输入格式

输入的第一行是一个整数 $T$,表示测试用例的数量。接下来的每一行包含一个测试用例,包括四个整数 $L$、$N$、$K$ 和 $M$,其中 $L$ 表示大数 $N$ 的位数,$N$ 是范围在 \[10^{(L-1)}, (10^L) - 1\] 内的数,$K$ 表示界限,$M$ 是用于模运算的数。

输出格式

对于每个测试用例,输出一行,格式为 `Scenario #i: `,其中 $i$ 是测试用例的编号,后面接着可以形成的子序列的最大和。

说明/提示

- $1 \leq L \leq 100000$ - $10^{(L-1)} \leq N < (10^L) - 1$ - $1 \leq K \leq 8$ - $1 \leq M \leq 45$ ### 示例 **输入** ``` 4 7 1235678 2 10 7 1235678 2 3 3 679 2 20 4 3457 2 10 ``` **输出** ``` Scenario #1: 8 Scenario #2: 2 Scenario #3: 16 Scenario #4: 9 ``` **本翻译由 AI 自动生成**