#abc302b. [abc302_b]Find snuke
[abc302_b]Find snuke
问题描述
有一个具有 行和 列的网格。每个单元格上都写着一个小写英文字母。我们用 表示从上到下的第 行和从左到右的第 列的单元格。
网格上写下的字母由 个字符串 表示,每个字符串的长度为 。 的第 个字母表示 上的字母。
在网格中有一组唯一的连续单元格(垂直、水平或对角线方向),它们上面依次写着 s
, n
, u
, k
, 和 e
。找到这些单元格的位置,并按照输出部分指定的格式打印出来。
称五个单元格的元组 形成了一组以 s
, n
, u
, k
, 和 e
依次写在上面的连续单元格(垂直、水平或对角线方向),当且仅当满足以下所有条件:
- 和 上分别写着
s
,n
,u
,k
, 和e
。 - 对于 ,单元格 和 共享一个角或一条边。
- 和 的中心在一条公共线上并且间隔相等。
约束条件
- 和 是整数。
- 是一个长度为 的由小写英文字母组成的字符串。
- 给定的网格有一组唯一的符合要求的单元格。
输入
输入以以下格式从标准输入中给出:
输出
按照以下格式输出五行。
设 是被寻找的集合中的单元格,其中分别写着 s
, n
, u
, k
, 和 e
。第 行应该按照这个顺序打印出 和 ,用一个空格分隔。
换句话说,按照以下格式打印:
参见下面的示例输入和输出。
示例输入 1
6 6
vgxgpu
amkxks
zhkbpp
hykink
esnuke
zplvfj
示例输出 1
5 2
5 3
5 4
5 5
5 6
元组 $(A_1,A_2,A_3,A_4,A_5)=((5,2),(5,3),(5,4),(5,5),(5,6))$ 满足条件。
事实上,它们上面写着 s
, n
, u
, k
, 和 e
;
对于所有 ,单元格 和 共享一条边;
而且这些单元格的中心在一条公共线上。
示例输入 2
5 5
ezzzz
zkzzz
ezuzs
zzznz
zzzzs
示例输出 2
5 5
4 4
3 3
2 2
1 1
元组 $(A_1,A_2,A_3,A_4,A_5)=((5,5),(4,4),(3,3),(2,2),(1,1))$ 满足条件。
但是,例如,$(A_1,A_2,A_3,A_4,A_5)=((3,5),(4,4),(3,3),(2,2),(3,1))$ 违反了第三个条件,因为这些单元格的中心不在一条公共线上,尽管它满足第一和第二个条件。
示例输入 3
10 10
kseeusenuk
usesenesnn
kskekeeses
nesnusnkkn
snenuuenke
kukknkeuss
neunnennue
sknuessuku
nksneekknk
neeeuknenk
示例输出 3
9 3
8 3
7 3
6 3
5 3