loj#P3297. 「BalticOI 2012 Day2」俄罗斯方块
「BalticOI 2012 Day2」俄罗斯方块
Cannot parse: undefinedms error parsing time
题目描述
译自 BalticOI 2012 Day2 T3. Tiny
有不少人还记得当年由 Alexey Pajitnov 发明的游戏——俄罗斯方块(TETRIS)。在游戏中,由四个方块组成的碎片从上面掉落,游戏的目标是将碎片落在相应的位置,形成尽可能多的完全填满的行。当一行被方块完全填满时,这一行的方块消失,上面的方块掉落,从而为下落的碎片提供更多空间。
在这个问题中,我们将研究俄罗斯方块的一个简易版本:Tiny TETRIS(简称 Tiny)。一共有九种碎片,每个碎片都由不超过三个方块组成。
(每个碎片种类编号标在了相应碎片下方)
Tiny 的游戏目标和俄罗斯方块是一样的。游戏中每个碎片将会落入一个 的区域。但与俄罗斯方块不同的是,Tiny 中碎片不能旋转,且一旦开始下落,碎片就不能向左或向右移动。这意味着玩家只能在某个碎片开始下落的时候,指定一个列的编号,这个碎片中打 的方块将会落在该列上。
每次游戏有 个碎片,你需要将尽可能多的碎片放入区域中,且碎片不能超过区域顶端或进行非法操作。你的得分将与成功放入的碎片数有关。
形式化地说,我们维护一个计数器,这个计数器的初值为 ,则 Tiny 的游戏过程如下:
- 玩家选择当前碎片最左边方块所在的列;
- 如果选择的列合法(例如对于第 种碎片,选择落在第 列是不合法的),这个碎片会向下掉落,直到碰到障碍物为止,否则游戏结束;
- 如果碎片完全落在区域内,则计数器的值加一,否则游戏结束;
- 接下来检查是否有被方块完整填满的行,如果有,这一行的所有方块消失,上面的方块则在不改变相对位置的情况下向下移动;
- 如果还有碎片,则回到第 步,否则游戏结束。
你的得分将会是游戏结束时计数器的值。
输入格式
输入文件 tiny.i1
tiny.i5
请点击附加文件下载。
输入文件第一行为一个整数 ,代表游戏共有 个碎片。
接下来 行,第 行一个 的整数,代表第 个下落的碎片种类。
输入文件保证存在一种方案,使得 个碎片全部落入区域中。
输出格式
对于输入文件 tiny.i1
tiny.i5
,请提交对应的输出文件 tiny.o1
tiny.o5
。
输出文件最多包含 行,第 行包含一个整数,代表第 个下落的碎片中,最左边方块落在的列的编号。
数据范围与提示
每个测试点 分。
设你在该测试点游戏结束时的计数器的值为 ,所有选手中计数器的最大值为 ,则该测试点的得分为 。
在 LibreOJ 评测时,(即你需要使得所有碎片均成功下落才能得到满分)。
请注意,如果您输出了 行,请确保前 个碎片全部正常下落,否则 checker 将无法正确评判您的提交。