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 自动生成**