아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

누적 거리

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

요약
서로 다른 위치에 있는 마을들과 각 마을의 주민 수가 주어질 때, Q개의 후보 위치 각각에서 모든 마을까지의 가중 절댓값 거리 합을 구한다.
난이도

보통10점 중 4점

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

문제

KOI 나라는 수직선 위에 놓인 NN개의 마을로 구성되어 있다. 이 중 ii (1≤i≤N1 \le i \le N)번째 마을은 xix_i 위치에 놓여 있으며 aia_i명이 거주 중이다. 또한 서로 다른 두 마을이 같은 위치에 놓인 경우는 없다.

KOI 나라는 모든 국민이 참여하는 모임을 개최하려고 한다. 모든 사람들이 모임 장소에 도착하기 위해 이동해야 하는 거리의 합을 누적 거리라고 부르고, 모임 장소가 xx일 때의 누적 거리를 f(x)f(x)로 나타내자.

ii번째 마을에 사는 사람이 xx 위치에서 열리는 모임에 참가하기 위해서 이동해야 하는 거리는 ∣xi−x∣|x_i - x|이다. ii번째 마을에는 aia_i명이 거주 중이므로 ii번째 마을에 사는 사람들의 이동 거리의 합은 ai∣xi−x∣a_i|x_i - x|가 된다. 이 값을 모든 마을에 대해 합한 값이 모임 장소가 xx일 때의 누적 거리가 될 것이다. 즉, f(x)=a1×∣x1−x∣+a2×∣x2−x∣+⋯+an×∣xn−x∣f(x) = a_1 \times |x_1 - x| + a_2 \times |x_2 - x| + \cdots + a_n \times |x_n - x|이다.

예를 들어 마을의 위치가 x1=1x_1 = 1, x2=3x_2 = 3, x3=6x_3 = 6이고, 각 마을에 거주하는 사람들의 수가 a1=2a_1 = 2, a2=1a_2 = 1, a3=3a_3 = 3이라고 하면, 모임 장소가 x=4x = 4일 때의 누적 거리는 f(4)=2×∣1−4∣+1×∣3−4∣+3×∣6−4∣=13f(4) = 2 \times |1 - 4| + 1 \times |3 - 4| + 3 \times |6 - 4| = 13 이다.

KOI 나라는 모임이 개최될 장소의 후보를 QQ개 준비해 두었다. 이 때 jj (1≤j≤Q1 \le j \le Q)번째 후보 장소의 위치는 qjq_j이다. 이 때 서로 다른 두 후보 장소의 위치가 같은 경우는 없으나 마을의 위치와 후보 장소의 위치가 같을 수 있다. 각각의 후보 장소에 대해 누적 거리를 계산하는 프로그램을 작성하라.

입력

첫 번째 줄에 NN과 QQ가 공백을 사이에 두고 차례로 주어진다.

다음 NN개의 줄에는 마을에 대한 정보가 주어진다. 이 중 ii (1≤i≤N1 \le i \le N)번째 줄에는 aia_i와 xix_i가 공백을 사이에 두고 차례로 주어진다.

다음 QQ개의 줄에는 모임 장소 후보에 대한 정보가 주어진다. 이 중 jj (1≤j≤Q1 \le j \le Q)번째 줄에는 qjq_j가 주어진다.

출력

jj (1≤j≤Q1 \le j \le Q)번째 줄에 모임 장소가 jj번째 후보 모임 장소인 qjq_j일 때의 누적 거리, 즉 f(qj)f(q_j)의 값을 출력한다.

제한

  • 1≤N≤200 0001 \le N \le 200\,000
  • 모든 ii (1≤i≤N1 \le i \le N)에 대해, 1≤ai≤1 0001 \le a_i \le 1\,000
  • 모든 ii (1≤i≤N1 \le i \le N)에 대해, −109≤xi≤109-10^9 \le x_i \le 10^9
  • 1≤Q≤200 0001 \le Q \le 200\,000
  • 모든 jj (1≤j≤Q1 \le j \le Q)에 대해, −109≤qj≤109-10^9 \le q_j \le 10^9
  • 1≤i1<i2≤N1 \le i_1 < i_2 \le N에 대해 xi1≠xi2x_{i_1} \ne x_{i_2}. 즉, 모든 마을의 위치는 서로 다르다.
  • 1≤j1<j2≤Q1 \le j_1 < j_2 \le Q에 대해 qj1≠qj2q_{j_1} \ne q_{j_2}. 즉, 모든 후보 장소의 위치는 서로 다르다.
  • 주어지는 모든 수는 정수이다.

힌트

∣x∣|x|는 x<0x < 0이면 −x-x, x≥0x \ge 0이면 xx인 절댓값 기호이다.

예제2

  1. 예제 1

    입력
    3 1
    2 1
    1 3
    3 6
    4
    
    예상 출력
    13
    
  2. 예제 2

    입력
    4 5
    3 -4
    1 -10
    2 11
    4 6
    6
    -5
    1
    -12
    14
    
    예상 출력
    56
    84
    66
    144
    116