Как и все на отдыхе, коровы играют в коровью версию словесной игры Boggle — Coggle. В этой похожей игре 25 кубиков с буквами бросают в матрицу вроде такой:
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
Слова составляют, начиная с буквы и переходя к одному из её максимум восьми соседей, пока последовательные буквы не образуют слово из словаря. Так набирают очки.
В матрице выше нижняя "$C$" позволяет составить "CAP", "COW" и "COOK", но не "COD" или "PACK". Полный список слов словаря для этого квадрата: "CAP", "COOK", "COW", "OWN", "WIT", "WOO", "ZOO" и "ZOOM".
Программа должна читать словарь из dict.txt. Он отсортирован по алфавиту, содержит менее 25,000 слов длиной не более 20 символов каждое. Сам словарь дан в приложенном dict.txt и доступен в рабочем каталоге при проверке.
Помогите Bessie узнать свой результат. Прочитайте пять строк по пять букв, представляющих кубики, и определите число слов словаря, которые можно составить. Букву одного кубика нельзя использовать дважды в одном слове.
Считайте число составляемых слов. Оно может быть меньше числа способов их составления, поскольку одно слово можно составить разными способами.
Входные данные
- Строки $1,\ldots,5$: строка $i$ содержит пять заглавных букв, разделённых пробелами, — ряд $i$.
Выходные данные
- Строка $1$: одно целое число — количество слов словаря, составляемых по указанным правилам.
Примеры
Входные данные 1
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
Выходные данные 1
8
Источник задачи: Traditional, 2009