레몬이 스니켓의 위험한 대결

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

요약
K명의 대원이 높이 N인 기둥을 각각 오르는데, 한 걸음마다 오르는 대원의 새 높이 값과 나머지 대원들의 현재 높이 값의 곱을 모두 더한 비용이 든다. 총비용의 최솟값을 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 그리디
정답자
아직 제출이 없습니다

문제

재원 도시에는 높이가 NN인 빌딩이 하나 있다. 빌딩의 외벽에는 KK개의 기둥이 존재하며, 각각 1,2,…K1, 2, \dots K번 기둥이다. 어느 날 이 빌딩에 화재가 발생했고, 이를 진압하기 위해 의용 소방대 VFD (Volunteer Fire Department)가 출동하였다.

VFD는 KK명의 대원으로 구성되어 있으며, 각 대원은 KK개의 기둥 중 한 기둥을 맡는다. 모든 대원은 높이 00인 맨 아래에서 시작해 기둥을 타고 올라 정확히 높이 NN에 도달해야만 화재를 완전히 진압할 수 있다.

이때 건물을 맨몸으로 오르는 것은 위험하므로, 한 사람이 높이 11만큼 오를 때마다 나머지 K−1K-1명의 현재 위치와 이 사람의 새로운 위치를 줄로 연결해 안전을 확보해야 한다.

xx번째 기둥을 담당한 대원을 xx번째 대원이라고 하자. xx번째 대원이 현재 높이 H_xH\_x에서 H_x+1H\_x + 1로 오르려 할 때, 모든 i≠xi \ne x에 대해 ii번째 대원의 현재 높이 H_iH\_i와 xx번째 대원의 새로운 위치 H_x+1H\_x + 1을 줄로 연결한다. 이때 각 줄의 연결 비용은 A_x,H_x+1×A_i,H_iA\_{x,H\_x+1} \times A\_{i,H\_i}로 계산된다. 즉, 한 번의 이동에는 총 K−1K-1개의 줄이 연결되며, 해당 이동의 비용은 연결 비용의 합이다.

모든 대원이 높이 NN에 도달할 때까지 필요한 이동 비용의 합의 최솟값을 구하여라.

입력

입력은 다음과 같은 형식으로 주어진다.

N KN \ K

A_1,0 A_1,1 ⋯ A_1,NA\_{1,0} \ A\_{1,1} \ \cdots \ A\_{1,N}

A_2,0 A_2,1 ⋯ A_2,NA\_{2,0} \ A\_{2,1} \ \cdots \ A\_{2,N}

⋮\vdots

A_K,0 A_K,1 ⋯ A_K,NA\_{K,0} \ A\_{K,1} \ \cdots \ A\_{K,N}

출력

첫째 줄에 모든 대원이 높이 NN에 도달하기 위한 최소 비용을 출력한다. 답은 101810^{18} 이하임이 보장된다.

제한

  • 1≤N≤100 0001 \leq N \leq 100 \ 000.
  • 2≤K≤200 0002 \leq K \leq 200 \ 000.
  • N×K≤200 000N \times K \leq 200 \ 000.
  • 1≤A_i,j≤100 0001 \le A\_{i,j} \le 100\ 000 (1≤i≤K1 \le i \le K, 0≤j≤N0 \le j \le N).

예제2

  1. 예제 1

    입력
    4 2
    1 3 5 3 1
    5 3 1 3 5
    
    예상 출력
    24
    
  2. 예제 2

    입력
    2 4
    1 100000 20
    100000 1 8
    1 100000 8
    100000 1 26
    
    예상 출력
    1401397