격자에서 문자열 찾기
시간 제한5초메모리 제한512 MB
각 질의 문자열이 격자에서 오른쪽으로 이동한 뒤 아래로 이동하는 경로로 만들어지는 횟수를 셉니다.
문제
R행 C열로 이루어진 격자 가 있다. 행은 위에서 아래로 1번부터 R번까지, 열은 왼쪽에서 오른쪽으로 1번부터 C번까지 번호가 매겨져 있다. 각 칸에는 대문자 알파벳이 하나씩 적혀 있다. r행 c열 칸의 문자는 로 나타낸다. 대문자로만 이루어진 문자열 Q개가 주어진다. 각 문자열에 대해 격자에서 그 문자열이 나타나는 횟수를 구한다.
문자열 가 격자에서 한 번 나타난다는 것은, 어떤 칸에서 출발해 오른쪽으로 0번 이상 이동한 뒤 아래로 0번 이상 이동하면서 를 만들 수 있다는 뜻이다. 를 만드는 데 쓰인 칸들의 집합이 다르면 서로 다른 등장으로 센다. 정확히는 각 에 대해 다음 조건을 만족하는 튜플 의 개수를 구한다.
그리고
입력
첫 줄에 정수 R, C, Q가 주어진다 (, ). 이어지는 R줄에는 각각 대문자 C개가 주어진다. r번째 줄의 c번째 문자가 이다. 이어지는 Q줄에는 대문자로 이루어진 문자열 S가 한 줄에 하나씩 주어진다. 각 문자열의 길이는 1 이상 200 000 이하이고, Q개 문자열 길이의 합은 200 000 이하이다.
출력
입력 순서대로 각 질의에 대해, 격자에서 그 문자열이 나타나는 횟수를 한 줄에 하나씩 출력한다.