드라이브
면접 대비시간 제한1초메모리 제한256 MB
D만큼 떨어진 목적지까지 이동할 때 연료 탱크 용량 C와 1km당 소비량 E가 주어집니다. 주유소의 위치와 리터당 가격을 보고 출발 시 가득 채운 상태로 목적지에 도달하는 최소 비용을 구합니다. 도달할 수 없으면 -1을 출력합니다.
문제
기섭이는 여자친구와 여행을 가려고 운전면허를 따고 새 차를 샀다. 그런데 여자친구에게 차였다. 기분이 울적해진 기섭이는 드라이브를 나가려고 한다.
기섭이의 집에서 드라이브 목적지까지의 총 거리는 D km이다. 기섭이가 산 차는 연료 용량이 C 리터이고 연비가 E (L/1 km)로 정해져 있어서, 집에서 목적지까지 한 번에 도달하지 못할 수도 있다. 다행히도 목적지와 집 사이에는 N개의 주유소가 있고, 각 주유소는 집에서 S1, S2, …, SN(km)만큼 떨어져 있다. (단, S1은 첫 번째 주유소와 집 사이의 거리이다.) 각 주유소에서 파는 기름의 가격은 주유소마다 다를 수 있다.
차를 사느라 돈을 많이 쓴 기섭이는 최소한의 비용으로 목적지까지 가려고 한다. 기섭이를 위해 목적지까지 가는 데 드는 최소 비용을 구해 주자. 기섭이가 집에서 출발할 때 연료는 가득 차 있다.
입력
첫 번째 줄에 차량의 최대 연료 용량 C, 차량이 1 km 가는 동안 사용하는 기름의 양 E, 목적지까지의 거리 D가 주어진다.
두 번째 줄에는 주유소의 개수 N이 주어진다. N=0이면 더 이상의 입력이 주어지지 않는다.
세 번째 줄에는 각 주유소 간의 거리 S1, S2, …, SN이 공백 하나를 사이에 두고 주어진다.
네 번째 줄에는 첫 번째 주유소부터 N번째 주유소까지 기름의 리터당 가격 P1, P2, …, PN이 공백 하나를 사이에 두고 순서대로 주어진다.
출력
목적지까지 가는 데 필요한 기름값의 최소 비용을 출력한다.
만약 도착할 수 없을 경우 -1을 출력한다.
제한
- 1 ≤ D ≤ 10,000, 1 ≤ S1, S2, …, SN ≤ 10,000
- 1 ≤ C, E ≤ 500, 0 ≤ N ≤ 1,000, 1 ≤ P1, P2, …, PN ≤ 10,000