곤돌라

주기가 2T인 순환선 위 정수 위치에 곤돌라 G대를 배치해, 각자 도착 시각 이후 첫 출발 편을 타는 N명의 총 대기 시간을 최소로 만든다.

보통7동적 계획법정렬누적 합그리디면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

산 정상까지 올라가는 구간은 스키에서 가장 재미있는 부분이다. 나무 사이를 지나고 구름을 통과하며 여러 풍경이 눈앞을 스쳐 간다.

리프트 앞에 모인 스키어는 자기 차례를 기다리기가 힘들다(올라가는 길이 언젠가 끝난다는 점은 조금 아쉽다). 쉬지 않고 도는 이 기계에 각자 몇 분에 올라타려 하는지는 미리 정해져 있다.

리프트는 하나로 이어진 순환 궤도다. 곤돌라는 산 아래 승강장에서 출발해 TT분 뒤에 정상에 닿고, 다시 TT분을 더 지나 산 아래 승강장으로 돌아온다. 그래서 한 곤돌라는 처음 출발한 시각으로부터 정확히 2T2T분마다 산 아래에서 다시 출발한다.

하루를 시작할 때 궤도에 달 수 있는 곤돌라는 GG대다. 곤돌라는 궤도 위 어느 자리에나 원하는 대로 달 수 있다. 어떤 곤돌라를 0p<2T0 \le p < 2T인 정수 pp 자리에 달면 그 곤돌라는 pp분, p+2Tp + 2T분, p+4Tp + 4T분, ... 에 산 아래를 출발한다. 여러 대를 같은 자리에 달아도 되고, 한 곤돌라에 타는 인원에는 제한이 없다.

스키어는 자신의 도착 시각과 같거나 그보다 늦은 시각에 가장 먼저 출발하는 곤돌라를 탄다. 대기 시간은 그 출발 시각에서 도착 시각을 뺀 값이다. 곤돌라 GG대의 자리를 정해서 스키어 전원의 대기 시간 합을 가장 작게 만들 때, 그 합의 최솟값을 구한다.

입력

  • 첫째 줄에 정수 세 개가 주어진다.

    • NN (1N4001 \le N \le 400): 스키어 수.
    • TT (1T7201 \le T \le 720): 산 아래에서 정상까지 가는 데 걸리는 시간(분).
    • GG (1G4001 \le G \le 400): 궤도에 달 수 있는 곤돌라 수.
  • 이어지는 NN개의 줄에 정수 XX (0X1060 \le X \le 10^6)가 한 줄에 하나씩, 순서 없이 주어진다. XX는 스키어 한 명이 산 아래에 도착하는 시각이다.

출력

  • 스키어 전원의 대기 시간 합의 최솟값을 한 줄에 정수 하나로 출력한다. 한 스키어의 대기 시간은 도착 시각과, 그 스키어가 타는 다음 곤돌라의 출발 시각 사이의 차이다.