날다람쥐

아직 제출이 없습니다시간 제한3초메모리 제한1024 MB

문제

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

ii (1iN1 \le i \le N)번째 기둥의 바닥은 점 (D_i,0)(D\_i, 0)에 위치하고, 높이는 H_iH\_i이다. 따라서 이 기둥은 점 (D_i,0)(D\_i, 0)(D_i,H_i)(D\_i, H\_i)를 잇는 선분이다. 또한, D_1=0D\_1 = 0이다.

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

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

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

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

그림 1

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

그림 2

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

제한

  • 2N500,0002 \le N \le 500\\,000
  • 0=D_1<D_2<<D_N1090 = D\_1 < D\_2 < \cdots < D\_N \le 10^9
  • 1H_i1091 \le H\_i \le 10^9 (1iN)(1 \le i \le N)
  • 0W_i1090 \le W\_i \le 10^9 (1iN)(1 \le i \le N)
  • 0LH_10 \le L \le H\_1
  • 0RH_N0 \le R \le H\_N