跳棋(8-4)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
大维在一条线段上玩跳棋,棋子可以通过“跳跃”和“翻滚”两种操作来移动。现在线上有 3 颗棋子,初始位置已知,大维想知道将它们移动到指定的三个目标位置至少需要多少步操作。
题目描述
在长度为 的线段 上,有 3 颗棋子,初始位置分别是 (三者两两不同)。棋子可以进行以下两种操作:
跳跃:
-
若在位置 和 ()各有一颗棋子,且区间 内都没有其他棋子,则位于 处的棋子可以直接跳到 处,视为跳跃了一步。
-
令 ,。若在位置 和 各有一颗棋子,且区间 内都没有其他棋子,且 ,则位于 处的棋子可以先跳到 (即 )处,再跳到 (即 )处,同样视为跳跃了一步。当 时规则相同。
翻滚:
若在位置 有一颗棋子,且 (或 )位于 且该处没有棋子,则该棋子可滚动一格到 (或 ),视为翻滚了一步。
现在线段 上有 3 颗棋子,位置分别是 。大维想知道,将这 3 颗棋子移动到给定的 3 个目标位置(不区分棋子之间的对应关系)最少需要操作多少步?
输入格式
第一行输入一个正整数 ,表示测试数据的组数。
每组数据包含两行:
第一行包含一个整数 ,表示线段右端点。
第二行包含三个互不相同的整数 ,表示三颗棋子的初始位置。
输出格式
对于每组测试数据,输出一个整数,表示将三颗棋子移动到任意三个位于 且互不相同的位置所需的最少操作步数。
样例
3
4
1 2 4
4
1 3 4
5
2 4 5
1
1
2
样例解释
第 1 组:将位置 4 上的棋子翻滚到位置 3,即可得到目标位置 ,共 1 步。
第 2 组:令 ,位置 3 和 4 各有棋子,且区间 内无其他棋子,按照跳跃规则中的“二次跳”操作,位置 4 上的棋子先跳到 3,再跳到 2,视为一步跳跃,得到目标 。
第 3 组:先令 ,位置 4、5 各有棋子,位置 5 的棋子跳跃到位置 3;然后将位置 4(此时已变为有棋子)的棋子翻滚到位置 3,得到 ,共 2 步。
数据范围
对于 20% 的数据,。
对于 另外 40% 的数据,。
对于 另外 30% 的数据,。
其余数据,。