텔레포트
시간 제한2초메모리 제한1024 MB
원형 트랙에서 순간이동 장치가 켜지고 꺼질 때마다 두 지점 사이의 최단 이동 시간 중 최댓값을 구합니다.
문제
새 경기장이 건설되고 있으며, 이 경기장의 핵심 시설은 텔레포트 시스템이다. 텔레포트는 길이가 인 원 위에 놓인다. 텔레포트는 항상 켜져 있지 않아서, 일부는 꺼지고 다른 일부는 다시 켜진다.
게임의 재미를 판단하려면, 원 위의 한 점에서 다른 점까지 원을 따라서만 이동할 때 걸릴 수 있는 최대 시간을 알아야 한다. 트리뷰트는 평균적으로 속도 로 달린다. 이동할 때 트리뷰트는 원을 따라 어느 방향으로든 달릴 수 있고, 작동 중인 텔레포트가 있는 점에 서 있다면 텔레포트를 이용할 수도 있다. 이때 트리뷰트는 작동 중인 텔레포트 중 원하는 곳으로 즉시 이동한다.
텔레포트 상태가 어떻게 바뀌는지는 알고 있다. 각 상태에 대해, 트리뷰트가 최적의 경로를 사용할 때 원 위의 한 점에서 다른 점까지 가는 데 걸리는 최대 시간을 구하시오.
텔레포트의 위치는 고정된 기준점에서 시계 방향으로 원을 따라 잰 거리로 주어진다.
입력
첫 줄에는 네 정수 , , , 가 주어진다(, , , ). 각각 처음에 켜져 있는 텔레포트의 수, 상태 변경 횟수, 원의 길이, 트리뷰트의 속도이다.
둘째 줄에는 처음에 켜져 있는 텔레포트의 위치 ()가 개 주어진다. 모두 서로 다르다.
다음 개 줄에는 상태 변경이 주어진다. 줄이 +로 시작하면 그 뒤의 정수 () 위치의 텔레포트를 켠다. 줄이 -로 시작하면 위치의 텔레포트를 끈다.
켜는 위치에는 텔레포트가 꺼져 있고, 끄는 위치에는 텔레포트가 켜져 있음이 보장된다.
출력
개의 줄에 각 상태에 대한 답을 출력한다. 첫 줄은 처음 상태의 답이고, 번째 줄은 번 변경한 후 상태의 답이다().
답은 절대 오차 또는 상대 오차가 이하이면 정답으로 인정한다.