만드는 중입니다

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

날다람쥐

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

요약
날다람쥐가 높이 L에서 출발해 모든 기둥을 차례로 지나 높이 R에 도달할 때, 땅에 닿지 않고 드는 최소 비용을 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 세그먼트 트리, 스택
정답자
아직 제출이 없습니다

문제

2차원 평면 위에 NN개의 기둥이 일렬로 놓여 있다. 기둥에는 왼쪽에서 오른쪽으로 1번부터 NN번까지 자연수 번호가 붙어 있다.

ii (1≤i≤N1 \le i \le N)번째 기둥의 바닥은 점 (Di,0)(D_i, 0)에 있고, 높이는 HiH_i이다. 따라서 이 기둥은 점 (Di,0)(D_i, 0)과 (Di,Hi)(D_i, H_i)를 잇는 선분이다. 또한 D1=0D_1 = 0이다.

처음에 날다람쥐는 가장 왼쪽 기둥의 높이 LL인 곳, 즉 점 (0,L)(0, L)에 있다. 날다람쥐는 모든 기둥을 왼쪽부터 순서대로 거쳐서 가장 오른쪽 기둥의 높이 RR인 곳, 즉 점 (DN,R)(D_N, R)에 도착하려고 한다.

날다람쥐가 한 기둥에서 다음 기둥으로 날아갈 때 오른쪽으로 dd (d≥0d \ge 0)만큼 움직이면 높이는 dd만큼 줄어든다. 다음 기둥에 도착하기 전에 땅에 닿으면 안 된다. 다음 기둥의 높이 0인 곳에 도착하는 것은 허용된다.

날다람쥐는 한 기둥에서 위로 기어오르거나 아래로 내려갈 수 있다. 기둥의 높이보다 더 높은 곳으로 오를 수는 없다. ii번째 기둥에서 위로 hh (h≥0h \ge 0)만큼 오르면 Wi×hW_i \times h의 비용이 든다. 아래로 내려갈 때는 비용이 들지 않는다.

그림 1은 날다람쥐가 이동하는 한 가지 예이다.

그림 1

그림 2의 왼쪽처럼 이동하면 중간에 땅에 닿으므로 허용되지 않는다. 그림 2의 오른쪽처럼 이동하면 기둥을 거치지 않는 경우가 있으므로 역시 허용되지 않는다.

그림 2

가장 작은 총 비용으로 날다람쥐가 목표 위치에 도착할 수 있는 방법을 계산하라.

제한

  • 2≤N≤5000002 \le N \le 500000
  • 0=D1<D2<⋯<DN≤1090 = D_1 < D_2 < \cdots < D_N \le 10^9
  • 1≤Hi≤1091 \le H_i \le 10^9 (1≤i≤N)(1 \le i \le N)
  • 0≤Wi≤1090 \le W_i \le 10^9 (1≤i≤N)(1 \le i \le N)
  • 0≤L≤H10 \le L \le H_1
  • 0≤R≤HN0 \le R \le H_N

예제1

  1. 예제 1

    입력
    2 0 0
    0 1 1
    1 1 0
    
    예상 출력
    1