만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

종이 조각

면접 대비

시간 제한2초메모리 제한512 MB

요약
N x M 숫자 격자를 가로 또는 세로 조각으로 잘라, 조각이 이루는 수들의 합이 최대가 되도록 한다.
난이도

보통10점 중 5점

유형
완전 탐색, 비트 연산, 백트래킹, 구현
정답자
아직 제출이 없습니다

문제

영선이는 숫자가 쓰인 직사각형 종이를 가지고 있다. 종이는 1×11 \times 1 크기의 정사각형 칸으로 나뉘어 있고, 각 칸에는 숫자가 하나씩 쓰여 있다. 행은 위에서 아래로, 열은 왼쪽에서 오른쪽으로 번호가 매겨져 있다.

영선이는 이 종이를 서로 겹치지 않는 조각으로 자르려고 한다. 각 조각은 세로 크기나 가로 크기가 1인 직사각형이다. 길이가 NN인 조각은 NN자리 수로 나타낸다. 가로 조각은 왼쪽에서 오른쪽으로, 세로 조각은 위에서 아래로 숫자를 이어 붙인 수이다.

아래 그림은 4×44 \times 4 크기의 종이를 자르는 방법 중 하나이다.

그림의 종이는 위 행부터 4937, 2591, 3846, 9150이다. 이렇게 자르면 조각의 합은 493+7160+23+58+9+45+91=7879493 + 7160 + 23 + 58 + 9 + 45 + 91 = 7879이다.

종이를 적절히 잘라 조각의 합을 최대로 만드는 프로그램을 작성하시오.

입력

첫째 줄에 종이의 세로 크기 NN과 가로 크기 MM이 주어진다. (1≤N,M≤41 \le N, M \le 4)

둘째 줄부터 NN개의 줄에 종이의 각 행이 공백 없이 MM개의 숫자로 주어진다. 각 칸의 숫자는 0부터 9까지 중 하나이다.

출력

영선이가 얻을 수 있는 조각의 합의 최댓값을 출력한다.

예제4

  1. 예제 1

    입력
    2 3
    123
    312
    
    예상 출력
    435
    
  2. 예제 2

    입력
    2 2
    99
    11
    
    예상 출력
    182
    
  3. 예제 3

    입력
    4 3
    001
    010
    111
    100
    
    예상 출력
    1131
    
  4. 예제 4

    입력
    1 1
    8
    
    예상 출력
    8