P7117: 俄罗斯方块
传统题
1.000s
时间限制
256MB
内存限制
0 提交
0 解决
【题目描述】
【题目描述】
俄罗斯方块是一种流行的电脑游戏,在由C列和无限行组成的区域中玩。在一个动作中,以下七个棋子中的一个被投进场地:
当落下一个棋子时,玩家可以自由地将棋子旋转90、180或270度,并将其向左或向右移动,只要棋子完全留在场地内。然后,棋子落下,直到它落在场地底部或已经占据的方格上。在我们的俄罗斯方块变体中,棋子必须落下,使棋子的所有部分都在场地的底部或已经占据的方格上。换言之,在棋子掉落后,可能不会有一个自由的正方形,使得其上方的某个正方形被占用。
例如,假设棋盘为六列宽,初始高度(每列中已占用的正方形的数量)为2、1、1、0和1。然后可以通过五种不同的方式将5号棋子放入棋盘:
输入所有列的初始高度以及要放入棋盘中的图形。
编写一个程序,计算将一个棋子放入棋盘中不同方式的数量。
【输入】
第一行包含两个整数C和P,1≤
C≤
100,1≤
P≤
7,列数和要删除的工件数。
第二行包含由单个空格分隔的C个整数,每个整数介于0和100之间(包括0和100)。这些是每一列的初始高度。
【输出】
在单行上输出在字段中放置工件的不同方式的数量。
【
样本输入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