티떱랜드

줄을 K개의 연속한 묶음으로 나눌 때 각 묶음 내부의 모든 쌍의 어색함 합이 최소가 되도록 한다.

어려움8동적 계획법분할 정복누적 합아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

티떱랜드에서 가장 인기 있는 놀이기구 앞에 NN명이 한 줄로 서 있다. 1번 사람이 줄의 가장 앞에 있고, NN번 사람이 가장 뒤에 있다.

이 놀이기구에는 열차가 KK대 있고, 사람들은 다음 순서로 탄다.

  • 첫 번째 열차에 줄의 앞에서부터 q1q_1명이 탄다.
  • 두 번째 열차에 그 다음 q2q_2명이 탄다.
  • 같은 방식으로 계속해서, KK번째 열차에 남은 qKq_K명이 탄다.

q1,q2,,qKq_1, q_2, \dots, q_K는 모두 양수이고 qi=N\sum q_i = N이다.

티떱랜드 사장 민혁이는 사람들이 모르는 사람과 함께 놀이기구를 타기 싫어한다는 사실을 알고 있다. 민혁이는 오늘 사람들을 행복하게 만들려고 최적의 q1,q2,,qKq_1, q_2, \dots, q_K를 찾는다.

ii번 사람과 jj번 사람 사이에는 어색한 정도 uiju_{ij}가 정해져 있다. uij=ujiu_{ij} = u_{ji}이고, 모든 1iN1 \le i \le N에 대해 uii=0u_{ii} = 0이다.

한 열차의 어색함은 그 열차에 탄 사람으로 만들 수 있는 모든 쌍의 어색한 정도를 더한 값이다.

열차 KK대의 어색함의 합을 최소로 하는 q1,q2,,qKq_1, q_2, \dots, q_K를 찾는 프로그램을 작성하시오.

입력

첫째 줄에 사람의 수 NN과 열차의 수 KK가 주어진다. (1N40001 \le N \le 4000, 1Kmin(N,800)1 \le K \le \min(N, 800))

둘째 줄부터 NN개의 줄에 각각 정수 NN개가 주어진다. 이 수가 행렬 uu를 나타낸다. (0uij90 \le u_{ij} \le 9, uij=ujiu_{ij} = u_{ji}, uii=0u_{ii} = 0)

출력

열차의 어색함의 합의 최솟값을 출력한다.

힌트

첫 번째 예제에서는 (1, 2)와 (3, 4, 5)로 나누어 타면 최솟값이 된다.

두 번째 예제에서는 (1, 2, 3), (4, 5, 6), (7, 8)로 나누어 타면 최솟값이 된다.