Сочи Парк

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

요약
직선 위 목표들과 x0 + kd 지점의 공급 지점이 주어질 때, 이동 비용 t를 포함해 각 참가자가 모든 목표를 맞히는 최소 칼로리를 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 수학, 그리디, 정렬
정답자
아직 제출이 없습니다

문제

В Сочи Парке открылся новый аттракцион. Вдоль прямой расположены nn целей, координата ii-й цели равна x_ix\_i (1≤i≤n1\le i\le n). Посетители должны поразить все эти цели в произвольном порядке. Для поражения целей используются мячики. Если посетитель находится в точке с координатой xx и хочет поразить цель, находящуюся в точке x_ix\_i, ему потребуется потратить (x−x_i)2(x-x\_i)^2 калорий.

Посетитель входит в аттракцион в точке с координатой x_0x\_0. Неограниченные запасы мячиков находятся в точке входа, а также во всех точках на расстоянии dd друг от друга, то есть в точках x_0+kdx\_0+kd, где kk --- произвольное целое число. Переносить мячики запрещено правилами аттракциона, поэтому бросать их можно только из этих точек.

В день между турами mm участников олимпиады посетят Сочи Парк. Участники соревнования находятся в разной физической форме, поэтому jj-му участнику олимпиады для перемещения на расстояние dd требуется t_jt\_j калорий.

Вам нужно определить, какое минимальное число калорий необходимо каждому участнику для поражения всех целей аттракциона.

입력

В первой строке задано одно целое число nn (1≤n≤3⋅1051 \leq n \leq 3 \cdot 10^{5}) --- количество целей в аттракционе.

Во второй строке заданы nn целых чисел x_1,x_2,…,x_nx\_{1}, x\_{2}, \ldots, x\_{n} (0≤x_i≤1090 \leq x\_{i} \leq 10^{9}) --- координаты целей.

В третьей строке заданы два целых числа x_0x\_{0} и dd (0≤x_0≤1090 \leq x\_{0} \leq 10^{9}, 1≤d≤2⋅1061 \leq d \leq 2 \cdot 10^{6}) --- точка входа посетителя аттракциона и расстояние между местами нахождения запасов мячиков.

В четвертой строке задано одно целое число mm (1≤m≤6⋅1051 \leq m \leq 6 \cdot 10^{5}) --- количество участников олимпиады.

В следующих mm строках содержится по одному целому числу t_jt\_j (0≤t_j≤1080 \leq t\_j \leq 10^{8}) --- количество энергии, необходимое jj-му участнику олимпиады для перемещения между двумя соседними местами нахождения запасов мячиков.

출력

Для каждого участника олимпиады выведите одно целое число --- минимальное количество, необходимое ему для перемещения и поражения всех целей.

При данных ограничениях ответ не превосходит максимального значения 64-битного знакового типа данных. Однако для промежуточных вычислений может понадобиться тип данных __int128 в C++ (поддерживается только в компиляторе GNU C++), BigInteger в Java, int в Python.

힌트

В первом тесте для второго участника (t_2=1t\_2=1) оптимальным будет следующий алгоритм поражения целей:

  1. Переместиться из точки x_0=2x\_0=2 в точку x_0−d=−1x\_0-d=-1, потратив t_2=1t\_2=1 калорию. Обратите внимание, координата посетителя может быть отрицательной.
  2. Поразить цель в точке x_2=0x\_2=0, потратив (−1−0)2=1(-1 - 0)^2 = 1 калорию.
  3. Переместиться в точку −1+2d=5-1+2d=5, потратив 2t_2=22t\_2 = 2 калории.
  4. Поразить цель в точке x_1=4x\_1=4, потратив (5−4)2=1(5 - 4)^2 = 1 калорию.
  5. Переместиться в точку 5+d=85+d=8, потратив t_2=1t\_2=1 калорию.
  6. Поразить цель в точке x_3=7x\_3=7, потратив (8−7)2=1(8 - 7)^2 = 1 калорию.

Суммарные затраты энергии равны 1+2+1+1+1+1=71 + 2 + 1 + 1 + 1 + 1 = 7 калорий. Можно показать, что это минимальное количество энергии.

Для шестого участника (t_6=23t\_6=23) оптимальным будет следующий алгоритм поражения целей:

  1. Поразить цель в точке x_2=0x\_2=0, потратив (2−0)2=4(2 - 0)^2 = 4 калории.
  2. Переместиться в точку 2+d=52+d=5, потратив t_6=23t\_6=23 калории.
  3. Поразить цель в точке x_3=7x\_3=7, потратив (7−5)2=4(7 - 5)^2 = 4 калории.
  4. Поразить цель в точке x_1=4x\_1=4, потратив (5−4)2=1(5 - 4)^2 = 1 калорию.

Суммарные затраты энергии равны 4+23+4+1=324 + 23 + 4 + 1 = 32 калории. Можно показать, что это минимальное количество энергии.

예제3

  1. 예제 1

    입력
    3
    4 0 7
    2 3
    7
    0
    1
    2
    3
    4
    23
    25
    
    예상 출력
    3
    7
    10
    12
    13
    32
    3
    
  2. 예제 2

    입력
    4
    30 239 57 179
    0 7
    5
    1
    10
    15
    100
    100000
    
    예상 출력
    49
    355
    525
    3378
    93311
    
  3. 예제 3

    입력
    4
    100 2 101 666
    9 10
    5
    777
    1
    2
    15
    10
    
    예상 출력
    49597
    91
    159
    1043
    703