시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
N x N 배열에 0부터 9까지의 숫자가 적혀 있다. 한 경로는 임의의 칸에서 시작해, 매번 상하좌우 또는 대각선으로 인접한 8방향 중 한 칸으로 이동하여 모두 L개의 칸을 방문한 것이다. 시작 칸도 L개에 포함된다.
경로에서 방문한 칸의 숫자를 순서대로 나열했을 때 그 수열이 팰린드롬이면, 그 경로를 팰린드롬 경로라고 한다.
같은 칸을 여러 번 방문할 수 있다. 다만 한 번의 이동에서 제자리에 머무를 수는 없으므로, 항상 인접한 다른 칸으로 이동해야 한다. 이전에 있던 칸으로 되돌아가는 것은 허용된다.
배열이 주어졌을 때 팰린드롬 경로의 개수를 구하라.
팰린드롬은 앞에서 읽어도 뒤에서 읽어도 같은 수열이다. {1}, {1 1}, {1 3 1}과 같은 수열이 여기에 해당한다.
첫째 줄에 N과 L이 주어진다. (1 <= N <= 20, 1 <= L <= 20)
다음 N개의 줄에는 배열의 각 행이 주어지며, 각 줄에는 0 이상 9 이하의 정수 N개가 공백으로 구분되어 있다.
팰린드롬 경로의 개수를 출력한다. 이 값은 2^31 - 1보다 작거나 같다.