만드는 중입니다

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

저수지

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

요약
벽의 위치와 높이가 주어졌을 때, 왼쪽에서 부은 물 K에 대해 물이 마지막으로 넘치는 벽의 번호를 각 질의마다 구합니다.
난이도

어려움10점 중 8점

유형
이분 탐색, 누적 합, 트리, 시뮬레이션
정답자
아직 제출이 없습니다

문제

레드강에 댐을 세워 큰 저수지를 만들었다. 저수지는 너비가 단위 길이 1인 직육면체 상자라고 가정한다. 저수지는 여러 개의 탱크로 이루어져 있다. 빈 저수지를 길이와 높이 방향으로 자른 단면의 예는 아래 그림과 같다.

물은 왼쪽 위의 게이트로 저수지에 흘러 들어온다. 탱크는 물을 막는 벽으로 나뉘어 있다. 각 벽의 두께는 단위 길이 1(너비 방향)이고, 높이는 저수지의 높이보다 낮다.

각 벽의 위치와 높이, 그리고 흘러 들어오는 물의 단위 부피 KK가 주어졌을 때, 물이 넘어가는 마지막 벽을 구하라.

입력

입력은 여러 개의 데이터셋으로 이루어진다. 첫 줄에는 데이터셋의 개수가 주어지며, 이는 20 이하의 양의 정수이다. 각 데이터셋은 다음과 같다.

  • 첫 줄에는 탱크를 나누는 벽의 개수 NN이 주어진다 (N≤105N \le 10^5).
  • 둘째 줄에는 ii번째 벽의 가로 위치(길이 방향) LiL_i가 NN개 주어진다 (1≤Li≤1091 \le L_i \le 10^9, i>1i > 1일 때 Li>Li−1+1L_i > L_{i-1} + 1).
  • 셋째 줄에는 ii번째 벽의 높이 HiH_i(단위 길이)가 NN개 주어진다 (1≤Hi≤1051 \le H_i \le 10^5).
  • 넷째 줄에는 질의의 개수 QQ가 주어진다 (Q≤105Q \le 10^5).
  • 이어지는 QQ개의 줄에는 저수지로 흘러 들어오는 물의 단위 부피 KK가 한 줄에 하나씩 주어진다 (K≤1015K \le 10^{15}).

출력

각 데이터셋에 대해 QQ줄을 출력한다. ii번째 줄에는 ii번째 질의에서 물이 넘어가는 마지막 벽의 번호를 출력한다. 물이 넘어가는 벽이 없으면 0을 출력한다.

힌트

설명:

예제1

  1. 예제 1

    입력
    1
    4
    1 3 5 8
    2 5 3 1
    3
    3
    13
    17
    
    예상 출력
    1
    1
    3