만드는 중입니다

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

중앙값 힙

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

요약
이진 트리의 각 노드 값과 변경 비용이 주어질 때, 중앙값 교환 과정의 루트 결과가 질의값 m이 되는 최소 비용을 구합니다.
난이도

어려움10점 중 9점

유형
트리, 동적 계획법, 힙
정답자
아직 제출이 없습니다

문제

Farmer John은 11부터 NN까지 번호가 매겨진 노드 NN개로 이루어진 이진 트리를 가지고 있다 (1≤N<2⋅1051 \leq N < 2\cdot 10^5, NN은 홀수). i>1i>1인 노드 ii의 부모는 ⌊i/2⌋\lfloor i/2\rfloor이다. 각 노드 ii에는 초기 정수 값 aia_i와, 그 값을 다른 임의의 정수 값으로 바꾸는 데 드는 비용 cic_i가 있다 (0≤ai,ci≤1090\le a_i,c_i\le 10^9).

FBI는 Farmer John에게 이 트리에서 근사 중앙값을 찾으라는 과제를 주었고, Farmer John은 이를 위한 알고리즘을 고안했다.

알고리즘은 마지막 노드 NN에서 시작해 거꾸로 진행한다. 각 단계에서 현재 노드가 자신과 두 자식 중 중앙값이 아니라면, 중앙값이 되는 값을 가진 자식과 현재 노드의 값을 서로 바꾼다. 알고리즘이 끝나면 루트 노드 1의 값이 근사 중앙값이 된다.

FBI는 목표 값 mm (0≤m≤1090\le m\le 10^9)이 지정된 독립적인 질의 QQ개 (1≤Q≤2⋅1051 \leq Q \leq 2\cdot 10^5)도 주었다. 각 질의마다 Farmer John은 먼저 일부 노드의 초기 값을 바꾸고, 그다음 알고리즘을 실행한다. 각 질의에 대해, 알고리즘의 출력이 mm이 되도록 만드는 최소 총비용을 구하라.

입력

첫 줄에 NN이 주어진다.

다음 NN개 줄에는 각각 두 정수 aia_i와 cic_i가 주어진다.

다음 줄에는 QQ가 주어진다.

다음 QQ개 줄에는 각각 목표 값 mm이 주어진다.

출력

QQ개의 줄을 출력한다. 각 줄에는 해당 목표 값 mm에 대한 최소 총비용을 출력한다.

예제1

  1. 예제 1

    입력
    5
    10 10000
    30 1000
    20 100
    50 10
    40 1
    11
    55
    50
    45
    40
    35
    30
    25
    20
    15
    10
    5
    
    예상 출력
    111
    101
    101
    100
    100
    100
    100
    0
    11
    11
    111