회문 경로
시간 제한1초메모리 제한256 MB
N by N 문자 격자의 왼쪽 위에서 오른쪽 아래까지 오른쪽이나 아래쪽으로 이동해 만들 수 있는 서로 다른 팰린드롬 문자열 개수를 구합니다.
문제
농장은 크기의 격자이고 (), 각 칸에는 A부터 Z까지의 대문자가 하나씩 적혀 있다.
소 베시는 매일 왼쪽 위 칸에서 출발해 오른쪽 아래 칸까지 걸어간다. 한 번 움직일 때마다 오른쪽으로 한 칸 또는 아래로 한 칸 이동한다. 출발 칸과 도착 칸을 포함해 지나간 칸의 글자를 순서대로 읽으므로, 한 번의 산책은 길이 인 문자열 하나를 만든다.
이 문자열이 회문이면 베시는 방향 감각을 잃는다. 회문은 앞에서 읽으나 뒤에서 읽으나 같아서 자신이 어느 쪽으로 걸었는지 헷갈리기 때문이다.
베시가 만들 수 있는 회문의 개수를 구하라. 서로 다른 경로가 같은 회문을 만들면 한 번만 센다.
다음 격자를 보자.
ABCD
BXZX
CDXB
WCBA
ABXZXBA를 만드는 경로는 여러 개지만, 베시가 만들 수 있는 회문은 ABCDCBA, ABCWCBA, ABXZXBA, ABXDXBA 네 개뿐이다.
입력
첫째 줄에 이 주어진다. 다음 개 줄에는 격자의 한 행씩이 주어지며, 각 줄은 A부터 Z까지의 문자 개로 이루어져 있다.
출력
베시가 만들 수 있는 서로 다른 회문의 개수를 출력한다.