问题7117--俄罗斯方块

7117: 俄罗斯方块

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 256 MiB

题目描述

【题目描述】

俄罗斯方块是一种流行的电脑游戏,在由C列和无限行组成的区域中玩。在一个动作中,以下七个棋子中的一个被投进场地:


当落下一个棋子时,玩家可以自由地将棋子旋转90180270度,并将其向左或向右移动,只要棋子完全留在场地内。然后,棋子落下,直到它落在场地底部或已经占据的方格上。在我们的俄罗斯方块变体中,棋子必须落下,使棋子的所有部分都在场地的底部或已经占据的方格上。换言之,在棋子掉落后,可能不会有一个自由的正方形,使得其上方的某个正方形被占用。


例如,假设棋盘为六列宽,初始高度(每列中已占用的正方形的数量)为21101。然后可以通过五种不同的方式将5号棋子放入棋盘:

输入所有列的初始高度以及要放入棋盘中的图形。

编写一个程序,计算将一个棋子放入棋盘中不同方式的数量。

【输入】

第一行包含两个整数CP1C1001P7,列数和要删除的工件数。

第二行包含由单个空格分隔的C个整数,每个整数介于0100之间(包括0100)。这些是每一列的初始高度。

【输出】

在单行上输出在字段中放置工件的不同方式的数量。

样本输入1

6 5

2 1 1 1 0 1

样本输出1

5

样本输入2

5 1

0 0 0 0 0

样本输出2

7

样本输入3

9 4

4 3 5 4 6 5 7 6 6

样本输出3

1

样例输入 复制

6 5
2 1 1 1 0 1

样例输出 复制

5

来源/分类