atcoder#ABC302B. [ABC302B] Find snuke
[ABC302B] Find snuke
题目描述
縦 マス 横 マスのマス目があり、各マスに つずつ英小文字が書き込まれています。 上から 行目かつ左から 列目のマスを で表します。
マス目に書き込まれている英小文字は 個の長さ の文字列 によって与えられ、 の 文字目が、 に書き込まれた英小文字を表します。
マス目の中に、s
, n
, u
, k
, e
が この順に(縦・横・ななめのいずれかの方向に) 連続して並んでいる 場所がただ つ存在します。
そのような場所を見つけ、そのマスの位置を出力の形式に従って出力してください。
ただし、s
, n
, u
, k
, e
が この順に(縦・横・ななめのいずれかの方向に) 連続して並んでいる場所とは、 つのマスの組 であって、次をすべてみたすものをさします。
- に書き込まれた英小文字はそれぞれ
s
,n
,u
,k
,e
である。 - について、 と は頂点または辺を共有している。
- の中心はこの順に一直線上に等間隔で並んでいる。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
次の形式にしたがって、 行出力せよ。
条件をみたす場所のうち s
, n
, u
, k
, e
が書かれたマスがそれぞれ であるとき、 行目には と をこの順に空白区切りで出力せよ。
すなわち、以下のように出力せよ。
以下の入力例も参考にせよ。
题目大意
题目描述
给你一个 行 列的字符矩阵。请你在当中的行列或者 斜上的八个方向上寻找连续的五个字符 s
,n
,u
,k
,e
,并依次输出它们的位置。保证有且仅有一组解。
输入格式
第一行 个整数 。
接下来 行每行一个长度为 的字符串。
输出格式
共五行,每行两个整数依次表示,找到的 s
,u
,n
,k
,e
的坐标。
6 6
vgxgpu
amkxks
zhkbpp
hykink
esnuke
zplvfj
5 2
5 3
5 4
5 5
5 6
5 5
ezzzz
zkzzz
ezuzs
zzznz
zzzzs
5 5
4 4
3 3
2 2
1 1
10 10
kseeusenuk
usesenesnn
kskekeeses
nesnusnkkn
snenuuenke
kukknkeuss
neunnennue
sknuessuku
nksneekknk
neeeuknenk
9 3
8 3
7 3
6 3
5 3
提示
制約
- は整数
- は英小文字のみからなる長さ の文字列
- 与えられるマス目の中に条件をみたす場所がただ つ存在する
Sample Explanation 1
この時、$ (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
であり、 について、 と は辺を共有しており、 各マスの中心は一直線上に存在するため、条件をみたしています。 ![](https://img.atcoder.jp/abc302/f0a6b1007df7fb00caa27a5f82a3afb1.png)
Sample Explanation 2
$ (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)) $ は、 つめの条件をみたしていますが、 マスの中心が一直線上に存在しないため、 つめの条件をみたしていません。