연주 중인 음표 찾기

면접 대비

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

요약
음 길이로 나뉜 타임라인에서 주어진 박자가 어느 음에 속하는지, 누적 합을 이분 탐색으로 찾아 답한다.
난이도

보통10점 중 4점

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

문제

농부 John이 소들에게 노래 한 곡을 연주하는 법을 가르치려고 합니다. 이 노래는 NN개의 음표로 이루어져 있고(1≤N≤10,0001 \le N \le 10{,}000), ii번째 음표는 BiB_i박자 동안 지속됩니다(1≤Bi≤1201 \le B_i \le 120). 따라서 노래 전체 길이는 최대 1,200,0001{,}200{,}000박자입니다.

연주는 시간 00에서 시작합니다. 음표 11은 시간 00부터 시간 B1B_1 직전까지 연주되고, 음표 22는 시간 B1B_1부터 B1+B2B_1 + B_2 직전까지 연주됩니다. 일반적으로 음표 ii는 반열린 구간 [B1+⋯+Bi−1, B1+⋯+Bi)[B_1 + \dots + B_{i-1},\ B_1 + \dots + B_i) 동안 연주됩니다.

소들이 계속 집중하도록, John은 QQ개의 질문을 던집니다(1≤Q≤50,0001 \le Q \le 50{,}000). 각 질문은 시간 TT를 주고, 시간 TT부터 시간 T+1T+1 직전까지의 구간 동안 어떤 음표를 연주하고 있어야 하는지를 묻습니다. 모든 질문은 0≤T<B1+⋯+BN0 \le T < B_1 + \dots + B_N을 만족하므로, 항상 정확히 하나의 음표가 연주되고 있습니다. 그 음표의 번호(1부터 시작)를 답하세요.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 NN과 QQ.
  • 둘째 줄부터 N+1N+1번째 줄까지: i+1i+1번째 줄에 정수 BiB_i 하나.
  • N+2N+2번째 줄부터 N+Q+1N+Q+1번째 줄까지: N+i+1N+i+1번째 줄에 ii번째 질문의 시간 TiT_i 하나.

출력

  • QQ개의 줄: ii번째 줄에 ii번째 질문의 구간 동안 연주되는 음표의 번호(1부터 시작)를 정수 하나로 출력합니다.

예제2

  1. 예제 1

    입력
    3 5
    2
    1
    3
    2
    3
    4
    0
    1
    
    예상 출력
    2
    3
    3
    1
    1
    
  2. 예제 2

    입력
    5 6
    3
    1
    4
    1
    5
    0
    2
    3
    7
    8
    13
    
    예상 출력
    1
    1
    2
    3
    4
    5