삭제, 삽입, 값 변경 비용을 써서 이웃 픽셀 값 차이가 M 이하가 되도록 만드는 최소 비용을 구합니다.
보통6동적 계획법최단 경로완전 탐색아직 제출이 없습니다시간 제한5초메모리 제한512 MB픽셀 N개가 한 줄로 늘어선 배열이 있다. 각 픽셀의 값은 0 이상 255 이하의 정수다. 두 픽셀의 거리는 두 값의 차의 절댓값이다.
다음 세 연산을 각각 원하는 횟수만큼 수행할 수 있다. 한 번도 하지 않아도 된다.
이웃한 모든 픽셀 쌍의 거리가 M 이하이면 그 배열을 매끄럽다고 한다. 배열을 매끄럽게 만드는 데 드는 최소 비용을 구하라.
픽셀이 하나도 없는 빈 배열도 매끄러운 배열로 본다.
첫 줄에 테스트 케이스의 개수 T가 주어진다. 이어서 테스트 케이스가 두 줄씩 주어진다. 각 테스트 케이스의 첫 줄에는 D, I, M, N이 공백으로 구분되어 주어지고, 둘째 줄에는 왼쪽부터 차례대로 픽셀의 값 a1,a2,…,aN이 주어진다.
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 그 배열을 매끄럽게 만드는 최소 비용이다.
첫 번째 예제의 1번 테스트 케이스에서는 7을 3으로 낮추는 것이 비용 4로 가장 싸다. 2번 테스트 케이스에서는 삭제 비용이 너무 크므로, 픽셀을 끼워 넣어 최종 배열을 [1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 50, 45, 40, 35, 30, 25, 20, 15, 10, 7]로 만드는 편이 더 싸다.