#icpc2015summerday2k. [icpc2015summer_day2_k]Leapfrog
[icpc2015summer_day2_k]Leapfrog
题目描述
有 个格子按照环形排列。每个格子从 到 编号。对于每个 (),第 个格子和第 个格子相邻。此外,第 个格子和第 个格子相邻。
其中的 个格子中,放有 个无法区分的棋子。开始时,棋子放在第 个格子上。我们希望通过若干次操作,使得棋子被放在第 个格子上。
- 选择连续的顺时针或逆时针方向的 个格子,依次标记为 。如果 和 上有棋子而 上没有棋子,则将 上的棋子移动到 上。
判断是否可以将棋子放在第 个格子上。如果可以,求出所需操作的最小次数。
约束条件
输入格式
输入从标准输入读入,具有以下格式。
输出格式
如果可以将棋子放在第 个格子上,则输出所需操作的最小次数。否则,输出 -1
。
示例输入 1
7 2
1 2
5 6
示例输出 1
3
可以通过以下 次操作实现:
- 将第 个格子的棋子移动到第 个格子。
- 将第 个格子的棋子移动到第 个格子。
- 将第 个格子的棋子移动到第 个格子。
示例输入 2
3 1
1
2
示例输出 2
-1
示例输入 3
2999 3
1 2 3
2 3 4
示例输出 3
4491004