#P16773. [GKS 2020 #G] Combination Lock
[GKS 2020 #G] Combination Lock
题目描述
一个密码锁有 个拨轮,每个拨轮上按升序标有整数 到 。
在任意时刻,每个拨轮都会显示一个特定的数值。 是第 个拨轮上显示的初始数值。
你可以通过一次操作将某个拨轮上显示的值从 改为 或 ,并在 和 之间循环。例如,如果一个拨轮当前显示 ,则一次操作可以将其变为 或 。
给定所有拨轮的初始值,要使所有拨轮显示相同的数值,最少需要多少次操作?
输入格式
输入的第一行给出测试用例的数量 。接下来有 个测试用例。
每个测试用例的第一行包含两个整数 和 。
第二行包含 个整数,其中第 个整数是 。
输出格式
对于每个测试用例,输出一行,格式为 Case #x: y,其中 是测试用例编号(从 开始), 是使所有拨轮显示相同数值所需的最少操作次数。
2
3 5
2 3 4
4 10
2 9 3 8
Case #1: 2
Case #2: 8
提示
在样例 #1 中,最佳方案是让所有拨轮都显示数值 ,总操作次数为 :第一个拨轮移动一次(从 到 ),第二个拨轮不动(已经显示 ),第三个拨轮移动一次(从 到 )。
作为参考,让所有拨轮都显示 需要 次操作,显示 需要 次,显示 需要 次,显示 需要 次。
在样例 #2 中,最佳方案是让所有拨轮都显示 、、 或 ,总操作次数均为 。
限制条件
。
。
测试集 1
。
。
测试集 2
。
。
测试集 3
。
。
翻译由 DeepSeek V4 Pro 完成