#993. 神父过河
神父过河
题目描述
个神父和 个恶魔一同来到了河岸,他们现在要过河。
他们可以通过一个容量为 的船过去。
在渡河过程中,在河岸和船上,神父的数量都不能小于恶魔的数量(或者神父数量为 0),否则会被吃掉。
船不会自己划,因此最少需要一个神父或者一个恶魔去划船。
请你设计一个渡河流程,使得 个神父和 个恶魔都能过河。
输入格式
第一行两个整数 和 ,含义如题目描述。
输出格式
第一行输出最少的步数 ,如果不行,输出 。
接下来 行,每行两个整数 分别表示此次参与划船的神父数量和恶魔数量。
如果有多种方案,河流湍急,优先考虑在前面操作中乘船总人数多的,如果还一样,输出神父较多的。
输入输出样例
3 2
11
1 1
1 0
0 2
0 1
2 0
1 1
2 0
0 1
0 2
1 0
1 1
2 2
5
1 1
1 0
2 0
1 0
1 1
说明/提示
样例解释
初始时,左岸有 个神父和 个恶魔,船也在左岸;右岸没有人。
船每次到达对岸后,下一次操作的方向会自动反转。因此,第 次操作表示从左岸前往右岸,第 次操作表示从右岸返回左岸。
样例中的渡河过程如下:
| 步数 | 航行方向 | 乘船人员 | 操作后左岸人数 | 操作后右岸人数 |
|---|---|---|---|---|
| 初始 | — | 个神父, 个恶魔 | 个神父, 个恶魔 | |
| 左岸 右岸 | 个神父, 个恶魔 | |||
| 右岸 左岸 | 个神父 | |||
| 左岸 右岸 | 个恶魔 | |||
| 右岸 左岸 | 个恶魔 | |||
| 左岸 右岸 | 个神父 | |||
| 右岸 左岸 | 个神父, 个恶魔 | |||
| 左岸 右岸 | 个神父 | |||
| 右岸 左岸 | 个恶魔 | |||
| 左岸 右岸 | 个恶魔 | |||
| 右岸 左岸 | 个神父 | |||
| 左岸 右岸 | 个神父, 个恶魔 | |||
整个过程中,左岸、右岸和船上均满足:神父数量不少于恶魔数量,或者神父数量为 。
最终,所有神父和恶魔都到达了右岸,共进行了 次航行。
数据范围