도시

시간 제한4초메모리 제한1024 MB

요약
개발되지 않은 칸을 K개까지 개발해 상하좌우 네 칸이 모두 개발된 칸들의 관광가치 합이 최대가 되도록 만든다.
난이도

보통10점 중 6점

유형
완전 탐색, 시뮬레이션, 그리디, 구현
정답자
아직 제출이 없습니다

문제

정사각형 나라는 N×NN \times N개의 정사각형 구역으로 나누어진 격자 형태이다. 각 구역마다 개발된 상태라면 11, 개발되지 않은 상태라면 00으로 표기되어 있는 지도가 있다. 어떤 구역이 개발되어 있고, 상하좌우로 인접한 4개의 구역이 모두 개발되어 있을 경우 이 구역은 도시가 된다. 즉, 가장자리에 있는 구역은 도시가 될 수 없다.

각 구역은 관광가치를 갖는다. 만약 ii번째 행의 jj번째 칸이 도시가 되면 이 구역의 관광가치는 V_ijV\_{ij}이고, 도시가 아니라면 관광가치는 00이다.

정사각형 나라에는 KK개의 구역을 추가로 개발할 자본을 가지고 있다. 안타깝게도 정사각형 나라는 그다지 부유하지 않아서, KK는 항상 개발되지 않은 구역의 수보다 작거나 같다. 관광 수익을 최대화하기 위해, KK개의 구역을 새롭게 개발하여 얻을 수 있는 도시의 관광가치의 합을 최댓값을 출력하라.

입력

첫 번째 줄에 NN, KK가 공백으로 구분되어 주어진다.

두 번째 줄부터 NN개의 줄에 걸쳐, ii번째 줄에 정사각형 나라의 지도 M_i1,M_i2,⋯ ,M_iNM\_{i1}, M\_{i2}, \cdots, M\_{iN}이 공백으로 구분되어 주어진다. ii번째 행의 jj번째 칸이 이미 개발되어 있우면 M_ij=1M\_{ij} = 1, 개발되어 있지 않으면 M_ij=0M\_{ij} = 0이다.

N+2N+2번째 줄부터 NN개의 줄에 걸쳐, ii번째 줄에 정사각형 나라의 각 구역의 관광가치 V_i1,V_i2,⋯ ,V_iNV\_{i1}, V\_{i2}, \cdots, V\_{iN}이 공백으로 구분되어 주어진다.

출력

KK개의 구역을 개발한 후 도시의 관광가치 합의 최댓값을 출력하라.

제한

  • 주어지는 모든 수는 정수이다.
  • 3≤N≤123 \leq N \leq 12
  • 0≤K≤500 \leq K \leq 50
  • M_ij∈0,1M\_{ij} \in \\{0, 1\\} (1≤i,j≤N1 \le i,j \le N)
  • 0≤V_ij≤1,000,0000 \leq V\_{ij} \leq 1\\,000\\,000 (1≤i,j≤N1 \le i,j \le N)
  • KK는 항상 개발되지 않은 구역의 개수보다 작거나 같다.

예제2

  1. 예제 1

    입력
    4 3
    0 0 1 0
    0 1 0 0
    0 0 0 0
    1 0 0 0
    29 67 78 70
    65 58 98 43
    43 11 91 88
    68 45 77 58
    
    예상 출력
    98
    
  2. 예제 2

    입력
    5 1
    1 1 1 1 1
    1 1 1 1 1
    1 1 0 1 1
    1 1 1 1 1
    1 1 1 1 1
    1 2 3 4 5
    5 4 3 2 1
    1 2 3 4 5
    5 4 3 2 1
    1 2 3 4 5
    
    예상 출력
    27