Palindromic Paths (Bronze)
题号:NC24230
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

Farmer John's farm is in the shape of an N×N grid of fields (2≤N≤18), each labeled with a letter in the alphabet. For example:
ABCD
BXZX
CDXB
WCBA

Each day, Bessie the cow walks from the upper-left field to the lower-right field, each step taking her either one field to the right or one field downward. Bessie keeps track of the string that she generates during this process, built from the letters she walks across. She gets very disoriented, however, if this string is a palindrome (reading the same forward as backward), since she gets confused about which direction she had walked.

Please help Bessie determine the number of different palindromes she can form during her walk. Different ways of forming the same palindrome only count once; for example, there are several routes that yield the palindrome ABXZXBA above, but there are only four distinct palindromes Bessie can form, ABCDCBA, ABCWCBA.

输入描述:

The first line of input contains N, and the remaining N lines contain the N rows of the grid of fields. Each row contains Ncharacters that are in the range A..Z.

输出描述:

Please output the number of distinct palindromes Bessie can form.
示例1

输入

复制
4
ABCD
BXZX
CDXB
WCBA

输出

复制
4