만드는 중입니다

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

물컵 비우기

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

요약
N개의 잔과 잔 사이를 옮기는 비용이 주어질 때, 물이 담긴 잔을 K개 이하로 남기는 최소 비용을 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 그래프, 비트 연산, 최단 경로
정답자
아직 제출이 없습니다

문제

미슬라브는 부피가 무한한 컵을 NN개 가지고 있고, 각 컵에는 물이 조금씩 들어 있다. 미슬라브는 물을 모두 마시고 싶지만, 컵을 KK개보다 많이 쓰고 싶지는 않다. 미슬라브가 할 수 있는 일은 한 컵에 든 물을 전부 다른 컵으로 옮겨 붓는 것뿐이다.

컵마다 미슬라브에게서 떨어진 거리가 달라서 어느 컵을 고르는지가 중요하다. ii번 컵의 물을 jj번 컵으로 옮기는 데 드는 힘은 CijC_{ij}이다.

물이 남아 있는 컵이 KK개 이하가 되도록 물을 옮길 때, 드는 힘의 합의 최솟값을 구하여라.

입력

첫째 줄에 정수 NN과 KK가 주어진다. (1≤K≤N≤201 \le K \le N \le 20)

다음 NN개 줄에는 정수가 NN개씩 주어진다. ii번째 줄의 jj번째 수가 CijC_{ij}이다. (0≤Cij≤1000000 \le C_{ij} \le 100000) 모든 ii에 대해 Cii=0C_{ii} = 0이다.

출력

미슬라브가 목표를 이루는 데 드는 힘의 합의 최솟값을 한 줄에 출력한다.

힌트

물이 든 컵이 처음부터 KK개 이하이면 물을 옮길 필요가 없고, 답은 0이다.

물은 여러 컵을 거쳐 갈 수 있다. ii번 컵의 물을 jj번 컵으로 옮긴 뒤, jj번 컵의 물을 다시 kk번 컵으로 옮겨도 된다.

예제3

  1. 예제 1

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

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

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