운명의 수레바퀴
면접 대비시간 제한2초메모리 제한512 MB
원형 바퀴의 n개 칸 값, 경계마다 감소하는 속도 k, 그리고 [a, b] 범위의 초기 각속도가 주어질 때, 양방향 회전 모두 고려해 화살표가 멈출 수 있는 칸 값의 최댓값을 구한다.
문제
오락 전문 텔레비전 채널에서 «운명의 수레바퀴»라는 쇼를 방송한다. 게임에서 참가자들은 여러 구역으로 나뉜 큰 바퀴를 돌린다. 이 바퀴의 각 구역에는 수가 적혀 있다. 바퀴가 멈춘 뒤, 특별한 화살표가 구역 하나를 가리킨다. 그 구역에 적힌 수가 참가자의 상금을 결정한다.
어린 참가자는 바퀴가 회전하는 동안 구역 사이에 있는 돌기에 화살표가 걸리면서 바퀴가 느려진다는 것을 알아냈다. 바퀴가 초당 도의 각속도로 회전하고, 화살표가 구역 에서 다음 구역으로 넘어가면서 돌기에 걸리면, 바퀴의 현재 각속도가 초당 도만큼 줄어든다. 이때 이면 바퀴는 장애물을 넘지 못하고 멈춘다. 이 경우 화살표는 구역 를 가리킨다.

어린 참가자는 바퀴를 돌리려고 한다. 바퀴의 구역 순서를 알고 있는 그는 바퀴가 멈춘 뒤 화살표가 가능한 한 큰 수를 가리키도록 초기 속도를 정하려고 한다. 바퀴는 어느 방향으로든 돌릴 수 있고, 초당 도에서 도 사이의 초기 각속도를 줄 수 있다.
구역에 적힌 수의 배치, 바퀴 회전의 최소 및 최대 초기 각속도, 구역 경계를 지날 때의 감속량이 주어졌을 때 최대 상금을 계산하는 프로그램을 작성해야 한다.
입력
입력 파일의 첫째 줄에는 정수 이 주어진다. 이는 바퀴의 구역 수이다 ().
입력 파일의 둘째 줄에는 개의 양의 정수가 주어지며, 각각은 1000을 넘지 않는다. 이는 바퀴의 구역에 적힌 수이다. 수는 구역이 시계 방향으로 이어지는 순서대로 주어진다. 처음에 화살표는 첫 번째 수를 가리킨다.
셋째 줄에는 세 정수 , , 가 주어진다 (, ).
출력
출력 파일에는 최대 상금에 해당하는 정수 하나를 출력한다.
힌트
첫 번째 예제에서는 다음과 같은 경우가 가능하다. 바퀴에 초기 속도 3 또는 4를 주면 화살표가 구역 사이의 경계 하나를 넘어가고, 초기 속도 5를 주면 화살표가 구역 사이의 경계 2개를 넘어간다. 첫 번째 경우 바퀴를 한쪽으로 돌리면 상금이 2가 되고, 반대쪽으로 돌리면 5가 된다. 두 번째 경우 바퀴를 한쪽으로 돌리면 상금이 3이 되고, 다른 쪽으로 돌리면 4가 된다.
두 번째 예제에서는 초기 회전 속도가 초당 15도인 경우만 가능하다. 이때 바퀴를 돌리면 화살표가 구역 사이의 경계 일곱 개를 넘어간다. 그러면 한 방향으로 돌리면 상금이 4가 되고, 반대 방향으로 돌리면 3이 된다.
마지막으로 세 번째 예제에서 최적의 초기 회전 속도는 초당 2도이다. 이 경우 화살표가 구역 사이의 경계를 전혀 넘지 못하고, 상금은 5가 된다.