버스 티켓

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

요약
오름차순으로 주어진 여행 날짜들에 대해, 편도 요금 s와 m일을 커버하는 정기권 가격 p가 주어질 때 모든 여행을 마치는 최소 비용을 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 그리디, 투 포인터, 이분 탐색
정답자
아직 제출이 없습니다

문제

이런! 시내 버스 정기권인 BGO(Bus-Go-Onsystem)의 정기권이 만료되었다. 처음에는 오늘 바로 새 정기권을 사고 싶었지만, 그러면 정기권이 휴가 시작 며칠 전에 만료되어 어차피 몇 번은 개별 요금을 내야 한다는 사실을 깨닫는다. 지금 한 번은 개별 요금으로 내고, 다음 정기권이 앞으로의 더 많은 이동을 포함하게 하는 편이 더 저렴하지 않을까?

입력

입력의 첫째 줄에는 네 개의 양의 정수 ss, pp, mm, nn이 주어진다. ss(1≤s≤1091 \le s \le 10^9)는 BGO의 개별 요금, pp(1≤p≤1091 \le p \le 10^9)는 정기권 가격, mm(1≤m≤1091 \le m \le 10^9)은 정기권이 보장하는 일수, nn(1≤p≤1061 \le p \le 10^6)은 앞으로(죽을 때까지, 따라서 이후에는 이동 요금을 낼 일이 없다) 계획한 이동 횟수이다.

둘째 줄에는 nn개의 음이 아닌 정수가 오름차순으로 주어지며, t1,t2,…,tnt_1, t_2, \ldots, t_n이다. 여기서 tit_i(0≤ti≤1090 \le t_i \le 10^9)는 BGO로 ii번째 이동을 할 때까지 남은 일수이다.

출력

이동을 모두 마치는 데 필요한 최소 비용.

예제1

  1. 예제 1

    입력
    10 25 30 6
    0 1 2 30 30 32
    
    예상 출력
    45