만드는 중입니다

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

Bitaro의 여행

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

요약
정렬된 관광지 좌표가 주어질 때, 각 시작 좌표에서 아직 방문하지 않은 가장 가까운 지점으로 이동하는 탐욕적 경로의 총 이동 거리를 구합니다.
난이도

보통10점 중 7점

유형
이분 탐색, 동적 계획법, 정렬
정답자
아직 제출이 없습니다

문제

JOI 시에는 실수 수직선으로 볼 수 있을 만큼 아주 긴 도로가 있다. 도로 위의 위치는 실수 좌표로 나타낸다. JOI 시에는 도로를 따라 관광지가 NN곳 있으며, 좌표가 작은 순서대로 11번부터 NN번까지 번호가 붙어 있다. ii번 관광지(1≤i≤N1 \le i \le N)의 좌표는 XiX_i이다.

비타로는 JOI 시의 모든 관광지를 방문하려고 한다. 그의 인생 좌우명은 "greedy"여서, 모든 관광지를 방문할 때까지 다음 절차를 반복한다.

  • 비타로의 현재 좌표를 xx라 하자. 아직 방문하지 않은 관광지 중에서 거리 ∣x−Xi∣|x - X_i|가 최소인 관광지 ii를 고른다. 비타로는 관광지 ii로 이동해 방문한다. 최소 거리인 관광지가 여럿이면 좌표가 더 작은 관광지로 이동한다.

여기서 ∣t∣|t|는 tt의 절댓값이다.

비타로는 오랜 경험으로, 이 방식대로 이동하면 총 이동 거리가 예상보다 길어질 수 있다는 것을 알고 있다. 총 이동 거리는 출발 좌표에 따라 달라진다. 그는 출발 좌표 후보 QQ개 S1,S2,…,SQS_1, S_2, \dots, S_Q 각각에서 출발했을 때, 모든 관광지를 방문할 때까지의 총 이동 거리를 알고 싶어 한다.

JOI 시의 정보와 출발 좌표 후보가 주어졌을 때, 각 후보에서 출발한 경우의 총 이동 거리를 계산하는 프로그램을 작성하라.

입력

표준 입력에서 다음 데이터를 읽는다.

NN

X1X_1 X2X_2 ⋯\cdots XNX_N

QQ

S1S_1

S2S_2

⋮\vdots

SQS_Q

출력

표준 출력에 QQ줄을 출력한다. jj번째 줄에는 비타로가 좌표 SjS_j에서 출발했을 때의 총 이동 거리를 쓴다.

제한

  • 1≤N≤200 0001 \le N \le 200\,000.
  • 1≤Q≤200 0001 \le Q \le 200\,000.
  • 0≤Xi≤1090 \le X_i \le 10^9 (1≤i≤N1 \le i \le N).
  • Xi<Xi+1X_i < X_{i+1} (1≤i≤N−11 \le i \le N - 1).
  • 0≤Sj≤1090 \le S_j \le 10^9 (1≤j≤Q1 \le j \le Q).
  • 주어진 값은 모두 정수이다.

예제2

  1. 예제 1

    입력
    5
    0 5 6 7 9
    1
    7
    
    예상 출력
    15
    
  2. 예제 2

    입력
    10
    1 2 3 4 5 6 7 8 9 10
    10
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    예상 출력
    9
    10
    11
    12
    13
    14
    15
    16
    17
    9