Rubik's Cube
题号:NC21683
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小w一直在陪tokitsukaze玩星际,有一天他玩累了,他想找一些能够放松自己的事情做,比如玩玩魔方。这不是,小w就买了一个三阶魔方玩。(三阶魔方是3x3x3的标准魔方)

众所周知NIT集训队中有很多玩魔方的大佬,比如说doge和water,但是小w就不会玩魔方。小w买来一个数字魔方想要练习玩魔方的技巧。

魔方的每一个面可以看成是一个九宫格。

九宫格中每个位置都有一个0-9的数字。

因为小w不会玩魔方,所以他只能拼出一面。经过练习,他现在能够拼出一面中数字的和最大。

doge看到了他这么玩魔方,就想要考考他。

doge提出了m个问题,问小w能不能拼出某一面,使得这一面九宫格的数字之和等于某一个值。

如果小w能够做到的话请输出"Yes"否则请输出"No"(不含引号)。

输入描述:

第一行输入一个是一个正整数T(T≤10000),表示有T组数据。

对于每组数据:
输入一个9行12列的字符型矩阵。

矩阵表示魔方的平面展开图,展开图的格式固定。

输入格式为:

***xxx******
***xxx******
***xxx******
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
***xxx******
***xxx******
***xxx******

表示一个魔方的平面展开图。

即:


"x"在输入的数据中是一个0-9的数字。并且对于每组数据,仅有"x"所代表的数字不同。

接下来输入一个正整数m(m≤100)表示有m组查询。

然后m行,每行一个整数queryx(0≤queryx≤81),表示doge要求小w在魔方的某一面上拼出的数字和。

输出描述:

对于每一个查询,输出"Yes"或者"No"表示小w能否做到doge的要求。
示例1

输入

复制
2
***092******
***305******
***569******
782902090790
902347865291
030076932400
***900******
***069******
***706******
1
81
***123******
***450******
***327******
348173240231
421796000020
010980013040
***236******
***042******
***102******
3
67
66
65

输出

复制
Yes
Yes
No
Yes