단어퍼즐 2
시간 제한2초메모리 제한128 MB
5x5 글자 격자와 최대 20000개의 사전 단어가 주어질 때, 같은 칸을 다시 밟지 않고 인접한 칸으로 이어서 만들 수 있는 단어의 수를 센다.
문제
5 x 5 격자의 각 칸에 대문자 알파벳이 하나씩 적힌 퍼즐이 있다. 이 퍼즐에서 사전에 실린 단어를 찾는다.
단어를 찾는 방법은 아무 칸에서 시작해 인접한 여덟 방향 중 한 칸으로 옮겨 가며 지나온 칸의 알파벳을 순서대로 이어 붙이는 것이다. 같은 칸을 두 번 이상 지날 수는 없다.
Z C C D X
K Q M N B
U O W Z Y
F C O I J
P A Q Z T
위 퍼즐에서 CAP, COW, COOK은 찾을 수 있지만 COD, PACK은 찾을 수 없다.
퍼즐과 사전이 주어지면 사전의 단어 중 퍼즐에서 찾을 수 있는 단어가 몇 개인지 구한다.
입력
첫 다섯 줄에 5 x 5 퍼즐이 주어진다. 각 줄에는 대문자 알파벳 다섯 개가 공백으로 구분되어 있다.
여섯째 줄에 사전에 실린 단어의 개수 이 주어진다. ()
이어지는 개 줄에 사전의 단어가 한 줄에 하나씩 주어진다. 각 단어는 길이가 1 이상 7 이하인 대문자 알파벳 문자열이고, 같은 단어가 두 번 주어지지는 않는다.
출력
사전의 단어 중 퍼즐에서 찾을 수 있는 단어의 개수를 첫 줄에 출력한다.