공항 커피

복도에 놓인 커피 카트에서 컵을 사는 위치를 정해 느린 구간과 빠른 구간이 번갈아 나타나는 이동 시간의 최솟값을 분수로 구한다.

어려움8동적 계획법그리디누적 합수학아직 제출이 없습니다시간 제한6초메모리 제한512 MB

문제

요나는 프로그래밍 대회에 갈 때 비행기를 자주 탄다. 헬싱키에 살아서 보통 코펜하겐 공항 같은 큰 허브 공항에 먼저 도착한 뒤 연결편으로 갈아탄다. 비행기는 늘 늦고, 환승이 걸린 날에는 그 지연이 특히 아프다.

요나는 방금 코펜하겐 공항에 내렸고, 히스로 공항으로 가는 연결편을 타야 한다. 헬싱키에서 출발한 비행기가 늦어서 도착 게이트에서 출발 게이트까지 빠르게 걸어야 한다. 요나가 평소에 걷는 속도는 초당 aa 센티미터다. 문제는 커피다. 커피를 마시지 않으면 요나는 발걸음이 무거워진다. 커피가 다리를 빠르게 만드는 것은 아니고, 커피를 못 마셔서 생기는 짜증이 비행기를 놓칠 걱정보다 더 크게 작용한다. 커피를 마시는 동안에는 속도가 초당 bb 센티미터로 올라간다.

도착 게이트와 출발 게이트 사이의 거리는 \ell 센티미터이고, 그 사이에 작은 커피 카트가 nn 개 있다. 비접촉 결제 덕분에 커피를 사는 데 걸리는 시간은 없다고 봐도 되지만, 커피가 뜨거워서 바로 마시지는 못한다. 산 뒤 tt 초 동안은 커피가 식기를 기다리며 느린 속도로 걷는다. 산 지 정확히 tt 초가 지나면 마시기 시작하고, 한 잔을 비우는 데 정확히 rr 초가 걸리며 그동안은 빠른 속도로 걷는다. 잔을 비우면 다시 느린 속도로 돌아간다.

요나는 왼손에 가방을 들고 있어서 컵을 한 번에 하나만 들 수 있다. 아깝기는 하지만, 커피가 남은 컵을 버리고 새 컵을 살 수 있다.

요나는 걷다가 멈추지 않으며, 커피는 카트를 지나가는 그 순간에만 살 수 있다. 요나가 출발 게이트에 도착하기까지 걸리는 가장 짧은 시간을 구하라.

입력

첫째 줄에 정수 \ell, aa, bb, tt, rr이 주어진다.

  • 110111 \le \ell \le 10^{11}: 도착 게이트와 출발 게이트 사이의 거리(센티미터)
  • 1a<b2001 \le a < b \le 200: 커피를 마시지 않을 때와 마실 때의 걷는 속도(초당 센티미터)
  • 0t3000 \le t \le 300: 커피를 마실 수 있을 때까지 기다리는 시간(초)
  • 1r12001 \le r \le 1200: 커피 한 잔을 비우는 데 걸리는 시간(초)

둘째 줄에 두 게이트 사이에 있는 커피 카트의 개수 nn이 주어진다(0n5000000 \le n \le 500000).

셋째 줄에 카트의 위치 nn 개가 도착 게이트에서 떨어진 거리(센티미터)로, 오름차순으로 주어진다. 각 위치는 00 이상 \ell 이하이고, 위치가 같은 카트는 없다. n=0n = 0이면 셋째 줄은 비어 있다.

출력

요나가 출발 게이트에 도착하기까지 걸리는 가장 짧은 시간을 초 단위로 출력한다. 이 시간은 항상 유리수이므로 기약분수 p/qp/q 꼴로 출력한다. 여기서 q1q \ge 1이고 ppqq의 최대공약수는 11이다. 시간이 정수 초이면 qq11이 되므로, 40초는 40/1로 출력한다.

힌트

그림은 첫 번째 예제를 나타낸다. 요나가 커피를 사는 카트는 삼각형으로, 커피를 마시며 빠르게 걷는 구간은 점선으로 표시했다. 요나는 도착 게이트에서 50005000, 5500055000 센티미터 떨어진 카트에서 커피를 산다. 첫 잔은 출발점에서 1100011000 센티미터 지점에서, 둘째 잔은 6100061000 센티미터 지점에서 다 식는다. 전체 100000100000 센티미터 중 8040080400 센티미터를 커피를 마시며 걸으므로 걸리는 시간은 19600/100+80400/138=17908/2319600/100 + 80400/138 = 17908/23 초다. 500050005000050000 카트에서 사도 시간은 똑같고, 출력하는 답도 같다.