n×m 글자 격자와 p개의 질의 단어가 주어질 때, 각 단어에서 행이나 열을 따라 네 방향 중 하나로 놓을 수 있는 가장 긴 연속 부분 문자열의 길이를 구한다.
보통6완전 탐색구현문자열배열아직 제출이 없습니다시간 제한2초메모리 제한512 MB영선이는 엉터리 점술사이다. 영선이는 아주 간단한 방법으로 점을 쳐서 운의 양을 정한다.
n×m 격자판의 각 칸에는 알파벳이 하나씩 쓰여 있다. 점을 보러 온 사람은 길이가 k인 단어를 마음대로 하나 적는다. 영선이는 그 단어의 연속된 일부분이 격자판의 문자와 최대한 길게 일치하도록 단어를 격자판 위에 겹쳐 놓고, 일치한 연속 부분의 길이로 운의 양을 정한다.
단어는 가로나 세로에 평행하게 한 줄로 놓으며, 글자가 이어지는 방향은 위, 아래, 왼쪽, 오른쪽 중 어느 쪽이어도 된다. 일치하지 않는 문자는 격자판 밖으로 벗어나도 된다.
예를 들어 격자판이 다음과 같다고 하자. (r,c)는 r번째 행의 c번째 칸을 뜻한다.
ABCDE
FGHIJ
KLMNO
PQRST
UVWXY
단어가 AHMRVP이면 연속된 일부분 HMR을 (2,3)부터 (4,3)까지 겹쳐 놓을 수 있다. 단어가 JEHGFP이면 연속된 일부분 HGF를 (2,3)부터 (2,1)까지 찾을 수 있다.
영선이는 엉터리 점술사인데도 우연히 점괘가 잘 맞아서 의외로 인기가 많다. 오늘도 p명의 점괘를 봐 줘야 하지만, 영선이는 점괘로 번 돈으로 놀고 있다. 영선이 대신 각 단어를 격자판에서 찾아 주자.
첫째 줄에 격자판의 크기 n, m이 주어진다. (1≤n,m≤100)
다음 n개의 줄에는 격자판의 각 행을 이루는 문자 m개가 공백 없이 주어진다.
다음 줄에 점괘를 보러 온 사람의 수 p와 단어의 길이 k가 주어진다. (1≤p≤100000, 1≤k≤30)
다음 p개의 줄에는 각 사람이 적은 단어의 문자 k개가 공백 없이 주어진다.
격자판과 단어의 모든 문자는 알파벳 대문자이다.
입력된 순서대로 한 줄에 하나씩, 각 단어에서 격자판과 겹쳐 일치시킬 수 있는 가장 긴 연속된 일부분의 길이를 출력한다. 단어의 어떤 문자도 격자판에 없으면 0을 출력한다.