추정
시간 제한5초메모리 제한128 MB
배열을 k개의 연속 구간으로 나누고 각 구간을 하나의 상수로 대체할 때 절대 오차 합의 최솟값을 구한다. 0 0이 나올 때까지 여러 테스트 케이스를 처리한다.
문제
"여기 숫자가 너무 많잖아!" 상사가 소리칩니다. "이걸 어떻게 다 이해하라는 거야? 줄여! 추정해!"
애써 만든 숫자들이라 아쉽지만, 상사가 시키는 대로 하기로 합니다.
추정은 다음과 같이 합니다. 크기가 인 수열 가 주어지면, 이를 연속한 개의 구간으로 나눕니다. 각 구간의 크기가 서로 같을 필요는 없습니다. 그런 다음 각 구간 전체를 하나의 수로 추정합니다. 즉, 크기가 인 수열 로부터 크기가 인 또 다른 수열 를 만드는데, 는 연속한 개의 구간으로 이루어지며 두 인덱스 와 가 같은 구간에 속하면 입니다. 목표는 오차, 즉 절댓값 차이의 합 를 최소화하는 것입니다.
입력
입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스의 첫 줄에는 두 정수 ()과 (, )가 주어지며, 은 수열의 크기이고 는 추정에 사용할 연속 구간의 개수입니다. 이어지는 개의 줄에는 각각 의 정수 원소가 하나씩 주어지며, 모든 원소는 을 만족합니다. 입력의 마지막 줄에는 두 개의 0이 주어집니다.
출력
각 테스트 케이스마다 한 줄에 정수 하나, 곧 달성할 수 있는 최소 오차를 출력합니다. 불필요한 공백을 출력하지 말고, 답과 답 사이에 빈 줄을 넣지 마십시오. 모든 답은 부호 있는 64비트 정수에 들어갑니다.