맛있는 스콘 만들기

면접 대비

시간 제한3초메모리 제한1024 MB

요약
각 시각의 온도를 정수로 정하되 이전 온도에서 C의 배수만큼, 최대 D만큼만 바꿀 수 있을 때, 목표 온도와의 차이로 정해지는 맛의 합을 최대로 만드는 값을 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

도현이는 SCON 참가자들에게 나눠줄 간식으로 스콘을 만들기로 했다.

매 시각마다 스콘이 가장 맛있게 구워지는 최적의 온도가 존재한다는 사실을 알고 있는 도현이는 시각 00부터 시작하여 시각 N−1N-1까지 오븐의 온도를 총 NN번 조절하여 스콘을 굽기로 했다.

스콘을 만드는 데 사용할 오븐은 11부터 MM까지의 정수 온도로 조절이 가능하다. 각 시각마다 한 번만 오븐의 온도를 조절할 수 있는데, 시각 00에서는 자유롭게 오븐의 온도를 조절할 수 있지만, 다른 시각에서는 기존 온도에서 CC의 정수 배만큼만 온도를 높이거나 낮출 수 있다. 또, 한 번에 DD를 초과해서 온도를 높이거나 낮출 수 없다. 예를 들어, 시각 tt에서 오븐의 온도를 182182로 조절했고, C=5,D=10C=5,D=10일 경우, 시각 t+1t+1에서 조절 가능한 온도는 172,177,182,187,192172,177,182,187,192뿐이다.

시각 tt에서의 최적의 온도를 b_tb\_t, 시각 tt에서 조절한 오븐의 온도를 k_tk\_t라고 하면 시각 t+1t+1에서 스콘의 맛은 M−∣b_t−k_t∣M-|b\_t-k\_t|만큼 증가한다.

시각 00부터 시각 N−1N-1까지의 최적의 온도가 주어졌을 때, 시각 NN에 완성되는 스콘의 맛의 최댓값을 구해보자. 처음 스콘을 오븐에 넣었을 때의 시각은 00이며, 스콘의 맛은 00이다. 모든 시각은 정수 시각만 고려한다.

입력

첫째 줄에 네 정수 N,M,C,DN,M,C,D가 공백으로 구분되어 주어진다.

둘째 줄에 각 시각의 최적의 온도를 의미하는 NN개의 정수 b_0,b_1,...,b_N−1b\_0,b\_1,...,b\_{N-1}이 주어진다.

출력

시각 NN에 완성되는 스콘의 맛의 최댓값을 출력한다.

제한

  • 1≤N≤2001\leq N\leq 200
  • 1≤M≤25,0001\leq M\leq 25\\, 000
  • 1≤C≤D≤M1\leq C\leq D\leq M
  • DD는 CC의 배수이다.
  • 1≤b_i≤M1\le b\_i\le M (0≤i≤N−10\le i\le N-1)
  • 입력으로 주어지는 수는 모두 정수이다.

예제2

  1. 예제 1

    입력
    3 8 2 4
    3 7 1
    
    예상 출력
    22
    
  2. 예제 2

    입력
    3 8 2 4
    8 3 2
    
    예상 출력
    23