만드는 중입니다

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

배달비가 너무 비싸서 만든 문제

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

요약
각 학생의 배달비 분담액이 상한을 넘지 않도록 N명을 M개 식당에 배정하고, 배달비 총합의 최솟값을 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

한국과학영재학교 학생들은 주말마다 배달 음식을 시켜 먹곤 한다. 요즘 배달비가 많이 올라서 함께 주문하는 학생들이 점점 늘고 있다.

총 NN명의 학생이 각자 MM개의 가게 중 정확히 한 가게를 골라 주문한다. 같은 가게를 고른 학생들은 함께 주문해서 배달비를 균등하게 나눠 낼 수 있다. jj번째 가게에서 주문하면 배달비 cjc_j가 발생하고, 그 가게에서 주문한 학생들이 이 배달비를 균등하게 나눠 낸다. 각자 내는 배달비가 꼭 정수일 필요는 없다. ii번째 학생은 jj번째 가게에서 주문할 때 자신이 내야 할 배달비가 ri,jr_{i,j} 이하이면 그 가게에서 음식을 주문할 수 있다.

도영이는 모든 학생이 내는 배달비의 총합이 최소가 되도록 각 학생이 주문할 가게를 정하려고 한다. 학생들이 내야 할 배달비 총합의 최솟값을 구하여라.

입력

첫 번째 줄에 두 정수 NN과 MM이 공백으로 구분되어 주어진다.

두 번째 줄에 MM개의 정수 c1,c2,⋯ ,cMc_1, c_2, \cdots, c_M이 공백으로 구분되어 주어진다.

다음 NN개의 줄에 ri,jr_{i,j}가 주어지며, 그중 ii번째 줄에 MM개의 정수 ri,1,ri,2,⋯ ,ri,Mr_{i,1}, r_{i,2}, \cdots, r_{i,M}이 공백으로 구분되어 주어진다.

출력

배달비 총합의 최솟값을 출력한다. 모든 학생이 빠짐없이 배달 음식을 주문하는 것이 불가능하다면 대신 -1을 출력한다.

제한

  • 1≤N≤151 \leq N \leq 15
  • 1≤M≤10001 \leq M \leq 1000
  • 1≤cj≤1071 \leq c_j \leq 10^7
  • 0≤ri,j≤1070 \leq r_{i,j} \leq 10^7

예제3

  1. 예제 1

    입력
    3 3
    3 2 10
    2 0 4
    2 0 4
    0 2 4
    
    예상 출력
    5
    
  2. 예제 2

    입력
    3 3
    3 2 10
    2 0 4
    1 0 4
    0 2 4
    
    예상 출력
    10
    
  3. 예제 3

    입력
    4 2
    8 8
    3 2
    3 2
    3 1
    0 2
    
    예상 출력
    -1