만드는 중입니다

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

이중 레이더

시간 제한1초메모리 제한2048 MB

요약
두 레이더를 피하면서 원형으로 놓인 k개의 집에서 시작점을 고르고 속도 v로 이동할 때, 훔칠 수 있는 코인 가치 합의 최댓값을 구합니다.
난이도

어려움10점 중 8점

유형
시뮬레이션, 수학, 투 포인터
정답자
아직 제출이 없습니다

문제

Ali는 최근 보물을 발견했고, 그 보물에 있던 코인들을 원형으로 배열했습니다. 원 둘레에는 간격이 같은 kk개의 집이 있습니다. 집은 시계 방향으로 11부터 kk까지 차례로 번호가 매겨져 있습니다. 보물에는 nn개의 코인이 있으며, ii번째 코인(1≤i≤n1 \le i \le n)의 가치는 wiw_i이고 집 xix_i에 놓여 있습니다. 보물을 지키기 위해 Ali는 원의 중심에 레이더 두 대를 설치해 둘레를 감시하고 있습니다. 레이더 ii(i∈{1,2}i \in \{1, 2\})는 집 rir_i를 감시하면서 출발하고, 1분에 1vi\frac{1}{v_i}집씩 움직입니다. 쉽게 말해 viv_i분마다 레이더 ii가 한 집 앞으로 나아갑니다. 처음에 첫 번째 레이더는 시계 방향으로, 두 번째 레이더는 반시계 방향으로 움직입니다. 두 레이더가 만날 때마다 둘 다 방향을 반대로 바꿉니다. 이 만남은 인접한 두 집 사이의 구간에서도 일어날 수 있습니다. 가능한 한 많은 코인을 훔치려는 Gholi는 원 위의 임의의 집에서 출발하여, 시계 방향이든 반시계 방향이든 1분에 최대 1v\frac{1}{v}집까지 움직이려 합니다. 그는 시각 0에 움직이기 시작합니다. 언제든 방향을 바꾸거나 잠시 멈출 수 있습니다. Gholi가 어느 순간이든 레이더 중 하나와 엇갈리면 바로 잡혀 감옥에 갇힙니다. 그 엇갈림이 집에서 일어나면 그 코인은 훔칠 수 없습니다. 레이더에게 들키기 전에 훔칠 수 있는 코인 가치의 합을 최대로 구하세요.

입력

첫 줄에는 세 정수 nn(1≤n≤1051 \le n \le 10^5, 코인의 개수), kk(1≤k≤1091 \le k \le 10^9, 원 둘레의 집 개수), vv(1≤v≤1041 \le v \le 10^4, Gholi의 속력)가 주어집니다. 둘째 줄에는 첫 번째 레이더의 시작 감시 집 r1r_1과 속력 v1v_1이 주어집니다(1≤r1≤k1 \le r_1 \le k, 1≤v1≤1041 \le v_1 \le 10^4). 셋째 줄에는 두 번째 레이더의 시작 감시 집 r2r_2와 속력 v2v_2가 주어집니다(1≤r2≤k1 \le r_2 \le k, 1≤v2≤1041 \le v_2 \le 10^4). r1≠r2r_1 \ne r_2가 보장됩니다. 넷째 줄에는 코인이 놓인 집 x1,x2,…,xnx_1, x_2, \dots, x_n이 서로 다른 정수로 주어집니다(1≤xi≤k1 \le x_i \le k). 다섯째 줄에는 각 코인의 가치 w1,w2,…,wnw_1, w_2, \dots, w_n이 주어집니다(1≤wi≤1091 \le w_i \le 10^9).

출력

레이더에게 들키기 전에 Gholi가 훔칠 수 있는 코인 가치 합의 최댓값을 출력하세요.

예제1

  1. 예제 1

    입력
    3 5 1
    1 2
    2 3
    1 2 4
    1 2 4
    
    예상 출력
    6