실크로드
면접 대비시간 제한1초메모리 제한256 MB
M일 중 동쪽 이동에 쓸 N일을 순서대로 정해 거리와 당일 궂은 날씨 곱의 합을 최소화합니다.
- 난이도
보통10점 중 4점
- 유형
- 동적 계획법
- 정답자
- 아직 제출이 없습니다
문제
과거 카자흐스탄에는 실크로드라는 교역로가 있었다.
실크로드에는 도시가 개 있고, 서쪽부터 차례로 도시 , 도시 , ..., 도시 이다. 도시 과 도시 () 사이의 거리는 이다.
무역상 JOI는 도시 에서 출발해 서쪽에서 동쪽으로 도시를 차례로 지나 도시 까지 가야 한다. 이 이동을 일 안에 끝내야 한다. JOI는 하루마다 다음 두 가지 중 하나를 고른다.
- 이동: 하루를 써서 바로 동쪽 도시로 간다. 지금 도시 ()에 있으면 도시 에 도착한다.
- 대기: 이동하지 않고 지금 도시에서 하루를 보낸다.
이동하는 날에는 피로도가 쌓인다. 일째 () 날씨의 나쁜 정도는 이고, 도시 에서 도시 로 일째에 이동하면 피로도가 만큼 쌓인다. 대기하는 날에는 피로도가 쌓이지 않는다.
JOI가 일 안에 도시 에 도착할 때 쌓이는 피로도 총합의 최솟값을 구하라.
입력
첫째 줄에 정수 , ()이 공백으로 구분되어 주어진다. 실크로드에 도시가 개 있고, JOI가 도시 에서 도시 까지 일 안에 가야 한다는 뜻이다.
다음 개 줄 중 번째 줄에는 정수 ()가 주어진다. 도시 과 도시 사이의 거리다.
다음 개 줄 중 번째 줄에는 정수 ()가 주어진다. 일째 날씨의 나쁜 정도다.
출력
JOI가 일 안에 도시 에 도착할 때 쌓이는 피로도 총합의 최솟값을 한 줄에 출력한다.
힌트
첫 번째 예제에서 피로도 총합을 최소로 만드는 방법은 다음과 같다.
- 1일째: 대기한다.
- 2일째: 도시 에서 도시 로 이동한다. 쌓이는 피로도는 이다.
- 3일째: 도시 에서 도시 로 이동한다. 쌓이는 피로도는 이다.
- 4일째: 대기한다.
- 5일째: 도시 에서 도시 으로 이동한다. 쌓이는 피로도는 이다.
이때 피로도 총합은 이고, 이보다 작게 만들 수는 없다.