아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Lavaspar

면접 대비

시간 제한2초메모리 제한512 MB

요약
격자에서 주어진 단어 목록 중 하나의 애너그램을 이루는 가로, 세로, 대각선 연속 구간에 속하는 칸의 수를 센다.
난이도

보통10점 중 6점

유형
구현, 완전 탐색, 해시맵, 문자열 매칭
정답자
아직 제출이 없습니다

문제

Caça Palavras는 꽤 잘 알려진 놀이지만, 최근 몇 년 동안 인기가 조금 줄었다. 이 게임의 목표는 각 칸에 글자가 하나씩 들어 있는 행렬에서 단어를 찾는 것이다.

Bibika와 그녀의 남동생은 Caça Palavras를 하고 있었는데, 모든 단어를 찾는 것이 비교적 쉬워지자 금방 흥미를 잃었다. Bibika는 남동생이 컴퓨터에서 좀 벗어나기를 바라서 인터넷에서 비슷한 게임을 찾다가 Caça Lavaspar를 발견했다.

Caça Lavaspar는 유명한 Caça Palavras와 같은 아이디어를 따르는 게임이다. 다만 행렬에서 단어를 그대로 찾는 대신, 그 단어의 아나그램 중 아무거나 하나를 찾는 것이 목표이므로 게임이 더 어렵고 흥미로워진다. 아나그램은 행, 열, 대각선에서 찾을 수 있다.

어떤 단어의 아나그램은 그 단어의 글자들을 재배열한 것이다. 아나그램이 뜻이 없을 수도 있지만 상관없다. BALO, LOBA, AOLB는 BOLA의 아나그램의 예이다.

Bibika는 행렬의 같은 칸이 서로 다른 단어의 아나그램에 속할 수 있다는 것을 알아차리고, 그런 칸을 특별한 칸이라고 부르기 시작했다.

이제 그녀는 행렬의 배치와 단어 모음이 주어졌을 때 특별한 칸이 몇 개인지 알고 싶어 한다.

위 그림은 첫 번째 예를 나타내며, 단어 모음은 BOLA, CASA, BOI 세 단어로 이루어진다. 각 색의 직사각형은 입력의 서로 다른 단어의 아나그램을 나타낸다. 3개의 특별한 칸이 노란색으로 칠해져 있다.

입력

첫째 줄에는 행렬의 행 수와 열 수를 나타내는 두 정수 L과 C가 주어진다.

그다음 L개의 줄이 주어지며, 각 줄에는 C개의 글자로 이루어진 단어가 하나씩 있다.

그다음 줄에는 단어 모음에 들어 있는 단어의 수 N이 주어진다.

마지막으로 N개의 줄이 주어지며, 각 줄에는 단어 모음의 단어가 하나씩 있다.

행렬과 단어 모음에 쓰이는 모든 문자는 영어 알파벳 대문자이다.

단어 모음의 어떤 두 단어도 서로 아나그램이 아님은 보장된다.

출력

출력은 특별한 칸의 수를 담은 한 줄로 이루어진다.

제한

  • 2 ≤ L, C ≤ 40.
  • 2 ≤ N ≤ 20.
  • N개의 단어 각각의 글자 수 P는 2 ≤ P ≤ min(15, max(L, C))를 만족한다.

예제3

  1. 예제 1

    입력
    4 5
    XBOIC
    DKIRA
    ALBOA
    BHGES
    3
    BOLA
    CASA
    BOI
    
    예상 출력
    3
    
  2. 예제 2

    입력
    3 3
    AAB
    ABA
    BAA
    2
    ABA
    BBB
    
    예상 출력
    3
    
  3. 예제 3

    입력
    2 4
    AAAA
    AAAA
    2
    AAA
    BBB
    
    예상 출력
    0