문제1266--숫자 타일

1266: 숫자 타일

시간제한 : 1.000 sec  메모리제한 : 128 MB

문제 설명

민호는 N x N 크기의 숫자 타일을 하나 가지고 있습니다.
각 타일은 1~9까지의 수 N2개로 이루어져 있습니다. 여기서 민호는 일직선(상하좌우, 대각선 4방향) 상에 있는 수 N개를 하나의 수로 보려고 합니다.

4 x 4 타일을 예시로 볼 경우, 1행을 왼쪽에서 오른쪽으로 읽으면 1957이라는 수를 만들 수 있고 오른쪽에서 왼쪽으로 읽으면 7591이라는 수를 만들 수 있습니다.
이러한 방식으로 만들 수 있는 가장 큰 수는 9625입니다.

하지만 민호에게 동일한 타일이 2장 있었다면 다음과 같이 좌우로 연결해서 9999를 만들 수 있습니다.

동일한 타일이 여러 장 있으면 1장으로는 만들 수 없는 더 큰 수를 만들 수 있을지도 모른다는 생각에 민호는 신이 나서 가지고 있던 타일을 마구 복사했습니다.
그렇게 민호는 무수히 많은 숫자 타일을 가지게 됩니다. 민호는 숫자 타일을 상하좌우로 무한히 이어붙였을 때(이때, 타일은 회전시킬 수 없다) 만들 수 있는 가장 큰 수는 얼마일지 궁금해졌습니다.

민호를 도와 궁금증을 해결해주세요.

입력 설명

첫째 줄에 정수 N (1  N  50)이 주어지며, 그 다음 줄부터 N개의 줄에 걸쳐 길이 N짜리 문자열이 주어집니다.

각 문자열은 1부터 9까지의 숫자로만 구성되어 있으며, 공백은 포함하지 않습니다.

출력 설명

문제에서 설명한 방식으로 만들 수 있는 가장 큰 수를 출력합니다.

입력 예시 Copy

4
1161
1119
7111
1811

출력 예시 Copy

9786

도움

출처/분류