
디지털 사진의 픽셀은 빨강, 초록, 파랑의 세기를 나타내는 0 이상 255 이하의 정수 세 개로 표현한다. 이미지를 압축하거나 독특한 느낌을 주려고 많은 사진 편집 도구에 포스터화(posterize) 기능이 들어 있다. 포스터화는 색 채널마다 따로 처리하며, 이 문제에서는 빨강 채널만 다룬다.
포스터화한 이미지의 빨강 채널은 0부터 255까지의 정수를 모두 쓰지 않고 그중 최대 k개만 쓴다. 각 픽셀의 원래 빨강 세기는 허용된 정수 중 가장 가까운 값으로 바뀐다. 편집 도구는 원본 이미지의 모든 픽셀에서 생기는 오차 제곱의 합이 최소가 되도록 정수 k개를 고른다. 픽셀 n개의 원래 빨강 값이 r1,…,rn이고 허용된 정수가 v1,…,vk일 때, 오차 제곱의 합은 다음과 같이 정의한다.
∑i=1nmin1≤j≤k(ri−vj)2
k와 이미지 픽셀의 빨강 세기 정보가 주어지면, 오차 제곱의 합이 가질 수 있는 최솟값을 구하는 프로그램을 작성하시오.