만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

포스터화

면접 대비

시간 제한2초메모리 제한512 MB

요약
d개의 서로 다른 빨강 세기와 그 개수가 주어질 때, 제곱 오차 합이 최소가 되도록 허용할 k개의 값을 고른다.
난이도

보통10점 중 6점

유형
동적 계획법, 수학, 정렬, 누적 합
정답자
아직 제출이 없습니다

문제

디지털 사진의 픽셀은 빨강, 초록, 파랑의 세기를 나타내는 0 이상 255 이하의 정수 세 개로 표현한다. 이미지를 압축하거나 독특한 느낌을 주려고 많은 사진 편집 도구에 포스터화(posterize) 기능이 들어 있다. 포스터화는 색 채널마다 따로 처리하며, 이 문제에서는 빨강 채널만 다룬다.

포스터화한 이미지의 빨강 채널은 0부터 255까지의 정수를 모두 쓰지 않고 그중 최대 kk개만 쓴다. 각 픽셀의 원래 빨강 세기는 허용된 정수 중 가장 가까운 값으로 바뀐다. 편집 도구는 원본 이미지의 모든 픽셀에서 생기는 오차 제곱의 합이 최소가 되도록 정수 kk개를 고른다. 픽셀 nn개의 원래 빨강 값이 r1,…,rnr_1, \dots, r_n이고 허용된 정수가 v1,…,vkv_1, \dots, v_k일 때, 오차 제곱의 합은 다음과 같이 정의한다.

∑i=1nmin⁡1≤j≤k(ri−vj)2\sum_{i=1}^{n} \min_{1 \le j \le k} (r_i - v_j)^2

kk와 이미지 픽셀의 빨강 세기 정보가 주어지면, 오차 제곱의 합이 가질 수 있는 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 원본 이미지에 나타나는 서로 다른 빨강 값의 개수 dd (1≤d≤2561 \le d \le 256)와 포스터화한 이미지에서 허용하는 빨강 값의 개수 kk (1≤k≤d1 \le k \le d)가 주어진다.

다음 dd개 줄에는 빨강 세기 rr (0≤r≤2550 \le r \le 255)와 세기가 rr인 픽셀의 수 pp (1≤p≤2261 \le p \le 2^{26})가 공백으로 구분되어 주어진다. 이 dd개 줄은 빨강 값이 증가하는 순서로 주어진다.

출력

허용할 정수 kk개를 가장 좋게 골랐을 때의 오차 제곱의 합을 출력한다.

예제3

  1. 예제 1

    입력
    2 1
    50 20000
    150 10000
    
    예상 출력
    66670000
    
  2. 예제 2

    입력
    2 2
    50 20000
    150 10000
    
    예상 출력
    0
    
  3. 예제 3

    입력
    4 2
    0 30000
    25 30000
    50 30000
    255 30000
    
    예상 출력
    37500000