만드는 중입니다

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

텔레포트

시간 제한2초메모리 제한1024 MB

요약
원형 트랙에서 순간이동 장치가 켜지고 꺼질 때마다 두 지점 사이의 최단 이동 시간 중 최댓값을 구합니다.
난이도

보통10점 중 6점

유형
정렬, 구현, 수학
정답자
아직 제출이 없습니다

문제

새 경기장이 건설되고 있으며, 이 경기장의 핵심 시설은 텔레포트 시스템이다. 텔레포트는 길이가 ll인 원 위에 놓인다. 텔레포트는 항상 켜져 있지 않아서, 일부는 꺼지고 다른 일부는 다시 켜진다.

게임의 재미를 판단하려면, 원 위의 한 점에서 다른 점까지 원을 따라서만 이동할 때 걸릴 수 있는 최대 시간을 알아야 한다. 트리뷰트는 평균적으로 속도 vv로 달린다. 이동할 때 트리뷰트는 원을 따라 어느 방향으로든 달릴 수 있고, 작동 중인 텔레포트가 있는 점에 서 있다면 텔레포트를 이용할 수도 있다. 이때 트리뷰트는 작동 중인 텔레포트 중 원하는 곳으로 즉시 이동한다.

텔레포트 상태가 어떻게 바뀌는지는 알고 있다. 각 상태에 대해, 트리뷰트가 최적의 경로를 사용할 때 원 위의 한 점에서 다른 점까지 가는 데 걸리는 최대 시간을 구하시오.

텔레포트의 위치는 고정된 기준점에서 시계 방향으로 원을 따라 잰 거리로 주어진다.

입력

첫 줄에는 네 정수 nn, mm, ll, vv가 주어진다(1≤n,m≤1051 \le n, m \le 10^5, 3≤l≤1093 \le l \le 10^9, 1≤v≤10001 \le v \le 1000, n≤ln \le l). 각각 처음에 켜져 있는 텔레포트의 수, 상태 변경 횟수, 원의 길이, 트리뷰트의 속도이다.

둘째 줄에는 처음에 켜져 있는 텔레포트의 위치 xix_i(0≤xi<l0 \le x_i < l)가 nn개 주어진다. 모두 서로 다르다.

다음 mm개 줄에는 상태 변경이 주어진다. 줄이 +로 시작하면 그 뒤의 정수 yiy_i(0≤yi<l0 \le y_i < l) 위치의 텔레포트를 켠다. 줄이 -로 시작하면 yiy_i 위치의 텔레포트를 끈다.

켜는 위치에는 텔레포트가 꺼져 있고, 끄는 위치에는 텔레포트가 켜져 있음이 보장된다.

출력

m+1m+1개의 줄에 각 상태에 대한 답을 출력한다. 첫 줄은 처음 상태의 답이고, (i+1)(i+1)번째 줄은 ii번 변경한 후 상태의 답이다(1≤i≤m1 \le i \le m).

답은 절대 오차 또는 상대 오차가 10−610^{-6} 이하이면 정답으로 인정한다.

예제1

  1. 예제 1

    입력
    3 4 100 3
    5 25 75
    - 5
    + 90
    + 37
    - 75
    
    예상 출력
    13.3333333333
    16.6666666667
    14.1666666667
    12.1666666667
    14.6666666667