P4887.第1题-老鹰捉小鸡
题目内容
老鹰捉小鸡是中华民族的传统游戏,游戏中有 3 个角色:一只老鹰,一只鸡妈妈和若干只小鸡。请完成简单的老鹰捉小鸡游戏。
游戏开始时有 M 只小鸡,组成小鸡队列(每只小鸡都有唯一编号,但小鸡们并没有根据编号排序)。
游戏共进行 N 轮,每一轮中,老鹰指定攻击当前队列中第 i 个小鸡,鸡妈妈指定保护当前队列中第 j 个小鸡(i 和 j 都是从 1 开始计数)。如果攻击和防守的是同一只小鸡(i 和 j 相同)则老鹰攻击失败;如果不同则老鹰攻击成功,被攻击的小鸡就需要退出游戏(从队列中删除,后面的小鸡依次向前补位,队列中不存在空位)。注意,如果 i 超过当前队列的长度,则认为本轮攻击无效;同理,如果 j 超过当前队列的长度,则认为本轮防守无效。
游戏过程中,一旦小鸡个数小于等于 1 时,游戏失败且立即结束;如果 N 轮后还有多于 1 只小鸡在场,则游戏胜利。
游戏失败输出 "Fail!" 和剩余小鸡编号;游戏胜利则输出 "Success!" 和剩余的小鸡们的编号(按编号递增排列)。
输入描述
输入共三行。
- 第一行有两个数字,分别为 M 和 N;
- 第二行共 M 个数字,分别代表 M 只小鸡的编号,这 M 个数字的顺序即代表着小鸡队列的初始状态;
- 第三行共 2∗N 个数字,每两个数字为一组,共 N 组。每组第一个数字 i 表示老鹰要攻击当前队列中的第 i 个小鸡,第二个数字表示鸡妈妈要保护当前队列中的第 j 个小鸡。
M 的最小值为 2,最大值为 1000;N 的最小值为 1,最大值为 1000。
输出描述
- 游戏失败则输出 "Fail!" 和剩余小鸡编号;
- 游戏胜利则输出 "Success!" 和所有剩余的小鸡编号(按编号递增排序),编号间用一个空格隔开。
注意,上述输出的感叹号 "!" 后有一个空格。
样例1
输入
4 3
40 30 20 10
2 1 2 1 1 1
输出
Success! 10 40
说明
初始共 4 只小鸡,为 40,30,20,10。
共进行 3 轮攻击和防守:
- 第一轮:攻击第 2 只,防守第 1 只。攻击成功,小鸡 30 离场。小鸡队列变为 40,20,10;
- 第二轮:攻击第 2 只,防守第 1 只。攻击成功,小鸡 20 离场。小鸡队列变为 40,10;
- 第三轮:攻击第 1 只,防守第 1 只。攻击失败。
三轮结束后,队列中仍有超过 1 只小鸡,则游戏胜利,按照输出要求,应输出:
Success! 10 40