Олимпиадный тренинг

Задача . Palindromic Paths (Bronze)


Задача

Темы:
Ферма Джона представлена решёткой из \(N \times N\) полей(\(2 \le N \le 18\)), каждое из которых помечено буквой алфавита. Например,


ABCD

BXZX

CDXB

WCBA

Каждый день корова Беси идёт с левого верхнего угла в правый нижний, двигаясь либо на одну клетку вправо, либо на одну клетку вниз. Беси записывает строку, которая получается в результате её маршрута, построенную из букв, по которым она прошла. Он будет очень расстроена, если в результате построенная строка окажется палиндромом (читается одинаково от начала к концу и от конца к началу), поскольку она запутается в каком направлении она шла.

Пожалуйста, помогите Беси определить количество различных палиндромов, которые она сможет сформировать во время своего путешествия. Различные способы формировать один и тот же палиндром следует учитывать только один раз. Например, в примере выше имеется несколько способов сформировать палиндром ABXZXBA, однако существует всего 4 различных палиндрома, которые Беси может сформировать ABCDCBA, ABCWCBA, ABXZXBA, ABXDXBA.

ФОРМАТ ВВОДА (файл palpath.in):

Первая строка ввода содержит \(N\), а последующие \(N\) строк содержат \(N\) описание поля. Каждая строка содержит по \(N\) символов в диапазоне A..Z.

ФОРМАТ ВЫВОДА (файл palpath.out):

Выведите количество различных палиндромов, которые Беси может сформировать.


Примеры
Входные данныеВыходные данные
1 4
ABCD
BXZX
CDXB
WCBA
4

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя