만드는 중입니다

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

깃발 꽂기

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

요약
길이 L인 구간에 이미 꽂힌 깃발 N개가 있을 때, 서로 K 이상 떨어지도록 깃발 M개를 더 꽂는 데 필요한 최소 이동 거리를 시작점 Q개마다 구합니다.
난이도

보통10점 중 7점

유형
그리디, 이분 탐색, 정렬, 누적 합
정답자
아직 제출이 없습니다

문제

이 국가의 영토는 좌우로 길쭉한 모양이다. 영토는 수직선 위의 길이 LL인 선분으로 나타낼 수 있으며, 왼쪽 끝은 좌표 00, 오른쪽 끝은 좌표 LL에 놓여 있다.

영토에는 깃발이 총 NN개 꽂혀 있다. 왼쪽에서 ii번째 깃발은 정수 좌표 XiX_i에 꽂혀 있다. 깃발이 한 군데에 몰려 있으면 보기 좋지 않으므로, 임의의 두 깃발은 적어도 KK 이상 떨어져 있어야 한다. 현재 꽂혀 있는 NN개의 깃발은 이 규정을 지킨다.

새해를 맞아 이 국가는 깃발 MM개를 추가로 꽂기로 했고, 공무원인 당신이 이 일을 맡았다. 당신은 특정 좌표에서 깃발 MM개를 들고 출발한다. 영토 안에서 좌우로 자유롭게 이동할 수 있고, 현재 위치가 정수 좌표라면 언제든지 깃발을 꽂을 수 있다. 다만 이미 꽂힌 깃발을 포함하여 임의의 두 깃발이 적어도 KK 이상 떨어지도록 깃발 MM개를 꽂아야 한다. 규정을 지키면서 깃발 MM개를 꽂을 수 없는 경우는 주어지지 않는다.

당신은 출발지 후보 QQ개 중 하나에서 출발하려 한다. ii번째 후보는 정수 좌표 PiP_i에 있다. 각 후보에서 출발할 때 깃발 MM개를 모두 꽂는 데 필요한 최소 이동 거리를 구하라.

입력

첫 번째 줄에 NN, MM, KK, LL, QQ가 공백으로 구분되어 주어진다.

두 번째 줄에 NN개의 정수 XiX_i가 공백으로 구분되어 주어진다.

이후 QQ개의 줄에 걸쳐, 이 중 ii번째 줄에는 PiP_i가 주어진다.

출력

QQ개의 줄에 걸쳐, 이 중 ii번째 줄에는 ii번째 후보에서 출발할 때 깃발 MM개를 모두 꽂는 데 필요한 최소 이동 거리를 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1≤N,Q≤200 0001 \le N, Q \le 200\,000
  • 1≤M,K,L≤1091 \le M, K, L \le 10^9
  • 0≤Xi≤L0 \le X_i \le L (1≤i≤N)(1 \le i \le N)
  • Xi+K≤Xi+1X_i + K \le X_{i+1} (1≤i≤N−1)(1 \le i \le N-1)
  • 0≤Pi≤L0 \le P_i \le L (1≤i≤Q)(1 \le i \le Q)
  • 규정을 지키면서 깃발을 추가로 MM개 꽂을 수 있다.

예제1

  1. 예제 1

    입력
    3 3 2 20 5
    5 10 19
    12
    4
    2
    20
    9
    
    예상 출력
    4
    9
    7
    7
    7