乌龟对对碰
题目描述
Y 同学正在观察一场“乌龟对对碰”游戏。
游戏使用一个 的棋盘,共有 个位置,按照从左到右、从上到下的顺序编号为:
| 第一列 | 第二列 | 第三列 | |
|---|---|---|---|
| 第一行 | |||
| 第二行 | |||
| 第三行 |
共有 只乌龟,按照 编号。第 只乌龟的颜色为 ,颜色使用数字 表示。
此外,给定一种幸运颜色 。
游戏中维护两个整数:
- 乌龟计数器:初始值为 ;
- 乌龟数量限制:初始值为 。
游戏按照以下流程进行。
放置乌龟
按照编号从小到大的顺序依次取出尚未处理的乌龟。
每取出一只乌龟:
- 乌龟计数器增加 ;
- 将这只乌龟放入棋盘中编号最小的空位置;
- 如果这只乌龟的颜色等于幸运颜色 ,则乌龟数量限制增加 。
每放入一只乌龟后,如果满足以下任意一个条件,则立即进行一次结算:
- 棋盘上的 个位置已经全部放满;
- 乌龟计数器已经达到乌龟数量限制。
结算规则
结算时按照以下 条规则依次检查。
规则编号越小,优先级越高。每执行完一条规则后,都需要重新从规则 开始检查,直到所有规则均无法执行为止。
规则 1:全家福
如果当前棋盘上所有乌龟的颜色两两不同,则销毁棋盘上的所有乌龟,并令乌龟数量限制增加 。
规则 2:同行
如果存在某一行的 个位置均有乌龟,并且这 只乌龟颜色相同,则销毁这 只乌龟,并令乌龟数量限制增加 。
规则 3:同列
如果存在某一列的 个位置均有乌龟,并且这 只乌龟颜色相同,则销毁这 只乌龟,并令乌龟数量限制增加 。
规则 4:对角线 1
如果位置 上均有乌龟,并且这 只乌龟颜色相同,则销毁它们,并令乌龟数量限制增加 。
规则 5:对角线 2
如果位置 上均有乌龟,并且这 只乌龟颜色相同,则销毁它们,并令乌龟数量限制增加 。
规则 6:碰
从位置 到位置 依次检查。
对于当前检查的位置 ,如果该位置有乌龟,并且存在另一个位置 ,使得位置 上的乌龟与位置 上的乌龟颜色相同,则:
- 若有多个满足条件的位置 ,选择编号最小的一个;
- 销毁位置 和位置 上的两只乌龟;
- 乌龟数量限制增加 。
执行完本次操作后,重新从规则 开始检查。
游戏结束
一次结算结束后:
- 如果乌龟计数器仍小于乌龟数量限制,并且还有尚未处理的乌龟,则继续按照编号顺序放置乌龟;
- 否则游戏结束。
请你求出游戏结束时乌龟计数器的值。
输入格式
第一行包含三个整数 ,分别表示乌龟数量、初始乌龟数量限制以及幸运颜色。
第二行包含一个长度为 的字符串。
字符串的第 个字符表示第 只乌龟的颜色 ,每个字符均为 0 到 9 中的一个数字。
输出格式
输出一行一个整数,表示游戏结束时乌龟计数器的值。
样例
样例输入 #1
27 10 3
012345678999892922167450000
样例输出 #1
23
样例解释
乌龟计数器 、初始乌龟限制:、幸运颜色为 。
第一轮
012345678999892922167450000
~~~~~~~~~
拿了 个乌龟,乌龟计数器变为 ,乌龟限制变为 (触发了一次幸运颜色)
| ~ | 第一列 | 第二列 | 第三列 |
|---|---|---|---|
| 第一行 | 0 | 1 | 2 |
| 第二行 | 3 | 4 | 5 |
| 第三行 | 6 | 7 | 8 |
结算时触发了第一条规则,棋盘清空,乌龟限制变为 (【全家福】 )
第二轮
012345678999892922167450000
xxxxxxxxx~~~~~~~~~
拿了 个乌龟,乌龟计数器 ,乌龟限制
| ~ | 第一列 | 第二列 | 第三列 |
|---|---|---|---|
| 第一行 | 9 | 9 | 9 |
| 第二行 | 8 | 9 | 2 |
| 第三行 | 9 | 2 | 2 |
【同行】 乌龟限制变为 ,棋盘变为:
| ~ | 第一列 | 第二列 | 第三列 |
|---|---|---|---|
| 第一行 | |||
| 第二行 | 8 | 9 | 2 |
| 第三行 | 9 | 2 | 2 |
【碰】 乌龟限制变为 ,棋盘变为:
| ~ | 第一列 | 第二列 | 第三列 |
|---|---|---|---|
| 第一行 | |||
| 第二行 | 8 | 2 | |
| 第三行 | 2 | 2 |
【碰】 乌龟限制变为 ,棋盘变为:
| ~ | 第一列 | 第二列 | 第三列 |
|---|---|---|---|
| 第一行 | |||
| 第二行 | 8 | ||
| 第三行 | 2 |
第三轮
012345678999892922167450000
xxxxxxxxxxxxxxxxxx~~~~~
拿了 个乌龟,乌龟计数器 ,乌龟限制
| ~ | 第一列 | 第二列 | 第三列 |
|---|---|---|---|
| 第一行 | 1 | 6 | 7 |
| 第二行 | 8 | 4 | 5 |
| 第三行 | 2 |
没有触发任何结算规则,游戏结束。
数据范围与约定
对于 的数据,保证:
- ;
- ;
- ;
- ;
- 最终乌龟计数器的值不超过 。
| 测试点编号 | 分值 | 具体限制 | 特殊性质 |
|---|---|---|---|
| 特殊性质 A | |||
| 特殊性质 B | |||
| 特殊性质 C | |||
| 无 | |||
| 无额外限制 |
- 特殊性质 A:保证 。
- 特殊性质 B:保证所有乌龟的颜色均不等于幸运颜色 。
- 特殊性质 C:保证所有乌龟的颜色均相同。
京公网安备11010802045784号