#440. [R71B]层层叠叠

[R71B]层层叠叠

时空限制

1S/256M

题目描述

对于一个长度为 nn 的小写字母字符串 s=s1s2sns=s_1s_2\dots s_n,可以按照以下方式构造一个 (2n1)×(2n1)(2n-1)\times(2n-1) 的字符矩阵:

首先,将矩阵最上面一行、最下面一行、最左边一列和最右边一列的所有格子填入字符 s1s_1。忽略这些已填充的格子后,未填充的部分仍是一个正方形,再将这个正方形最上面一行、最下面一行、最左边一列和最右边一列的所有格子填入字符 s2s_2。按照这一方式不断向矩阵中心填充,第 ii 次使用字符 sis_i。第 nn 次时只剩下中心的一个格子填入 sns_n。字符串中不同位置的字符可以相同。称按照上述方式由字符串 ss 构造出的矩阵为 ss生成矩阵

现在给定一个 (2n1)×(2n1)(2n-1)\times(2n-1) 的小写字母矩阵,判断它是否为某个长度为 nn 的小写字母字符串的生成矩阵。如果是,还需要输出该字符串。

格式

输入格式

第一行输入一个正整数 nn,表示原字符串的长度。

接下来 2n12n-1 行,每行输入一个长度为 2n12n-1 的小写字母字符串,表示矩阵的一行。

输出格式

如果给定矩阵不是任何长度为 nn 的小写字母字符串的生成矩阵,输出一行 No

否则,第一行输出 Yes,第二行输出对应的字符串 ss

样例

样例输入 #1

3
aaaaa
abbba
abcba
abbba
aaaaa

样例输出 #1

Yes
abc

样例解释 #1

该矩阵是字符串 abc 的生成矩阵。

样例输入 #2

2
aaa
aba
aab

样例输出 #2

No

样例解释 #2

矩阵最上面一行、最下面一行、最左边一列和最右边一列中同时出现了字符 ab,因此该矩阵不是任何字符串的生成矩阵。

数据规模

注意:你只有通过了该题目的所有测试点,才能获得分数。

对于 100%100\% 的数据,满足 1n1001\le n\le 100,输入矩阵仅包含小写英文字母。