#joi2010yof. [joi2010yo_f]方向音痴のトナカイ
[joi2010yo_f]方向音痴のトナカイ
问题
今年,圣诞老人从天空中突然降临到JOI镇。由于JOI镇的每个家庭都有孩子,所以这位圣诞老人必须在JOI镇的每个家庭中分发礼物。然而,今年带来的驯鹿有点迷路,不能离开建筑物以外的地方,并且方向感很差,因此为了给每个家庭送礼物,需要精心规划行进路线。
JOI镇被分为东、西、南、北四个区域,每个区域可以是房屋、教堂或空地。JOI镇只有一个教堂。按照以下规则,圣诞老人和驯鹿从教堂出发,在给每个家庭分发一次礼物后返回教堂:
- 由于今年的驯鹿方向感很差,只能朝东、西、南、北四个方向直线飞行,并且无法在空中改变方向。
- 圣诞老人可以自由通过还没有分发礼物的房屋上方。他可以降落在还没有分发礼物的房屋上。降落后,必须分发礼物,然后再朝东、西、南、北四个方向起飞。
- 在JOI镇的家庭中,在圣诞之夜,家庭成员在圣诞老人到来之前不会点亮壁炉,圣诞老人起飞后才会点亮。点亮壁炉后会冒烟,所以无法通过已经分发礼物的房屋上方。
- 可以自由通过教堂上方。但是,因为教堂正在举行礼拜,直到分发完所有礼物之前,不能降落到教堂。
给定镇子的结构作为输入,请编写一个程序来计算圣诞老人和驯鹿有多少种分发礼物的路线。
输入
输入共有 行。第一行包含两个整数 () 和 () ,用空格分隔开。接下来的 行中,每行包含 个由空格分隔的 、、 中的一个数字,表示各个区域的状态。如果区域 是空地,则该行中第 个值为 ;如果是房屋,则为 ;如果是教堂,则为 。教堂数量为 ,房屋数量介于 到 之间。在评分时提供的输入数据中,分发礼物的路线不会超过 条。
输出
输出只包含一个整数,表示分发礼物的路线数量。
示例 1
3 2
1 0 1
1 0 2
输出示例 1
2
示例 2
3 3
1 1 1
1 0 1
1 1 2
输出示例 2
6
示例 2 中的 种分发礼物的路线(数字表示顺序)