题目描述
题目描述
小泽在森林里为 名小伙伴主持一场抽牌游戏。小伙伴们按 到 编号,小泽只担任裁判,不参加游戏。
游戏开始时有一叠共 张牌的牌堆。每张牌属于以下三类之一:
0:白板牌;1:拆弹牌;2:炸弹牌。
输入给出的牌面顺序就是从牌堆顶部向下的顺序。所有尚未淘汰的玩家按编号循环行动,每轮由当前玩家摸走牌堆顶部的一张牌。某名玩家淘汰后会立刻退出循环,其余玩家的先后次序保持不变。
摸到不同牌时,按以下规则处理:
- 白板牌:本轮没有其他事情发生,这张牌从牌堆中消耗掉;
- 拆弹牌:玩家保存这张牌。每名玩家可以同时保存多张拆弹牌,留到以后使用;
- 炸弹牌,且玩家没有拆弹牌:该玩家立即淘汰,刚摸到的炸弹牌也从游戏中消失;
- 炸弹牌,且玩家至少有一张拆弹牌:玩家必须消耗一张拆弹牌,因此不会淘汰。随后把刚摸出的炸弹牌重新插入当前剩余牌堆中,从牌堆顶部向下数,在第 张牌之后插入。如果剩余牌数不足 ,则把炸弹放到牌堆末尾。一张拆弹牌只能使用一次。
特别地,当 时,炸弹会直接放回牌堆顶部。
初始牌堆中恰好有 张炸弹牌,因此游戏最终会只剩下一名玩家。请输出这名玩家的编号。
输入格式
第一行输入一个整数 ,表示使用拆弹牌后重新插入炸弹的位置参数。
第二行输入一个整数 ,表示参与游戏的玩家数量。
第三行输入一个整数 ,表示初始牌堆中的牌数。
第四行输入 个整数,依次表示从牌堆顶部到牌堆底部的所有牌面。
输出格式
输出一行一个整数,表示最后留下的玩家编号。
输入输出样例 #1
0
4
8
0 1 1 2 0 2 0 2
2
输入输出样例 #2
0
5
20
0 2 1 1 1 0 2 0 2 0 2 1 0 1 1 0 0 0 0 1
5
输入输出样例 #3
4
5
21
0 2 1 1 1 0 2 0 2 2 1 0 1 1 0 0 0 0 1 0 1
4
边界测试 #1
0
1
1
0
1
边界测试 #2
50000
2
3
1 0 2
1
样例说明
样例 #1 中 ,因此被拆除的炸弹会立即回到牌堆顶部。游戏过程如下:
- 玩家 摸到白板牌,没有其他事情发生;剩余牌堆为
1 1 2 0 2 0 2。 - 玩家 摸到拆弹牌并保存;剩余牌堆为
1 2 0 2 0 2。 - 玩家 摸到拆弹牌并保存;剩余牌堆为
2 0 2 0 2。 - 玩家 摸到炸弹牌,但没有拆弹牌,因此玩家 淘汰,炸弹也消失;剩余牌堆为
0 2 0 2。 - 玩家 摸到白板牌;剩余牌堆为
2 0 2。 - 玩家 摸到炸弹牌,消耗自己的拆弹牌并免于淘汰。因为 ,炸弹放回牌堆顶部,牌堆仍为
2 0 2。 - 玩家 同样摸到炸弹牌,消耗拆弹牌后把炸弹放回顶部,牌堆仍为
2 0 2。 - 玩家 摸到炸弹牌,但没有拆弹牌,因此淘汰;剩余牌堆为
0 2。 - 玩家 摸到白板牌;剩余牌堆为
2。 - 玩家 摸到炸弹牌且没有拆弹牌,因此淘汰。最终只剩玩家 。
边界测试 #1 中只有一名玩家,初始牌堆不含炸弹,玩家 直接获胜。边界测试 #2 中 取到最大值;玩家 使用拆弹牌后,剩余牌数不足 ,所以炸弹会被放到牌堆末尾。
测试点限制
| 测试点编号 | 特殊性质 | |||
|---|---|---|---|---|
| 牌堆中没有拆弹牌 | ||||
| 无 | ||||
对于全部测试数据:
$$0\le k\le50000,\qquad 1\le n\le50000,\qquad 1\le m\le500000.$$所有牌面只可能是 0、1、2,并且初始牌堆中恰有 张炸弹牌。