题号:NC231650
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
《植物大战僵尸》是由美国宝开游戏公司(PopCap Games)开发的一款益智策略类单机游戏。植物大战僵尸通关后会开启无尽生存模式,玩家研究总结出怪规律,提出了一个又一个阵型,比如经典八炮、经典十炮等炮阵,以及机械钟、原子钟等无炮阵。
泳池无尽是最受欢迎的无尽模式,地图由

的方格阵列构成,植物固定在方格里(一个方格最多容纳一颗植物,可以没有植物)。小c最近疯狂沉迷植物大战僵尸泳池无尽。他觉得蹦极僵尸很恼火:有随机数量的蹦极僵尸,每一只随机降落在地图上的某一格,偷走该格的植物。
现在他的地图上种着有大喷菇、忧郁菇、叶子保护伞、玉米加农炮和其他一些植物。小c告诉你,叶子保护伞可以保护自身为中心的

格子内植物不被蹦极僵尸偷取;玉米加农炮因为太重无法被蹦极僵尸偷走;否则,被蹦极僵尸选中的植物必须受到至少两颗植物的保护(即至少在两颗植物的射程内)才可以避免被偷走。
大喷菇的射程:右边

格(不含自身所在格子)。
忧郁菇的射程:自身所在格子为中心的

方格(包含自身所在格子)。
玉米加农炮和其他植物的攻击不考虑。
请你帮他判断一下,他的阵型能否抵御蹦极僵尸的攻击呢?
输入描述:
第一行包含一个正整数
,表示有
组数据。
接下来每组数据包含一个
行
列的数字矩阵,数字之间没有空格(详见样例),其中数字与植物对应表如下:

每组数据之间有一个空行。
输入保证行末没有多余空格。
输出描述:
对于每组数据输出一行答案:如果输入阵型能够抵御蹦极僵尸,输出`Yes`,否则输出`No`。
示例1
输入
复制
3
055544000
023544000
444453200
444453200
023544000
055544000
250110000
320322200
500000000
500000000
320322200
250110000
250011000
323022200
444450000
444411200
323112000
250111000