本题要求模拟一个数字消除游戏的全过程。面板为 H 行 5 列,每个格子中有一个 1 到 9 之间的整数。当某一行的水平方向上出现至少三个连续相同数字时,这些数字会被同时消除。消除后上方的数字会掉落填补空位,并重复检测消除,直到无法再消除为止。需要输出所有被消除数字的总和。
模拟过程分为若干轮,每轮包含三个步骤:
to_eliminate[H][5],初始均为 false。r 和每一列 c(c≤2),若 grid[r][c] 非零且与 grid[r][c+1]、grid[r][c+2] 相等,则说明该行为一段可消除序列的起点。此时继续向右扫描,将该行中所有与 grid[r][c] 相等的连续数字在 to_eliminate 中标记为 true。在一个 H 行 5 列的面板中,每个格子里都有一个数字块,上面写有 1 到 9 的整数。当水平方向上出现至少三个连续且数字相同的块时,这些块会立即被消除。消除发生后,上方的数字块会向下掉落,填补出现的空位。如果同一时刻有多组满足消除条件的块,则它们会同时被消除。此后,重复检测与消除、掉落的过程,直到面板中不再存在任何可消除的连续数字块。
你的任务是计算整个过程中所有被消除的数字块上的数字之和。
【数据范围】 测试用例的数量 T 满足 1≤T≤1100。 对于每个测试用例,行数 H 满足 1≤H≤10。 面板中的每个数字 xi,j 均为整数,且 1≤xi,j≤9。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册