만드는 중입니다

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

엉성한 도토리 분류기

면접 대비

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

요약
구멍을 지날 때마다 크기가 1씩 줄어드는 도토리가 처음으로 빠지는 구멍의 번호를 각 도토리에 대해 구합니다.
난이도

보통10점 중 4점

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

문제

엉성한 분류기를 이용하여 도토리를 크기별로 나누려고 한다.

분류기는 NN개의 구멍이 뚫린 기울어진 판자이다. 구멍은 높은 쪽부터 1번에서 NN번까지 차례로 번호가 매겨져 있다. ii번 구멍의 크기는 aia_i이다.

도토리를 분류기에 넣으면 1번 구멍부터 NN번 구멍까지 차례로 굴러간다. 표면이 거칠어서 도토리는 구멍 하나를 지날 때마다 크기가 1씩 줄어든다. 예를 들어 도토리가 1번 구멍을 지날 때 크기가 10이었다면, 1번 구멍을 지난 뒤 2번 구멍을 지날 때는 크기가 9이다. 같은 방식으로 2번 구멍을 지난 도토리는 3번 구멍을 지날 때 크기가 8이 된다.

도토리는 지나가는 구멍의 크기가 도토리의 현재 크기보다 크거나 같으면 그 구멍으로 떨어진다.

QQ개의 도토리 각각에 대해, 분류기에 넣었을 때 떨어져 나오는 구멍 번호를 구하는 프로그램을 작성하라. 주어진 입력 조건에서 도토리는 크기와 관계없이 어떤 구멍으로든 빠져나올 수 있다.

입력

첫째 줄에 구멍의 개수 NN이 주어진다. 둘째 줄에는 각 구멍의 크기 a1,a2,⋯ ,aNa_1, a_2, \cdots, a_N이 공백으로 구분되어 주어진다. 셋째 줄에는 분류해야 할 도토리의 개수 QQ가 주어진다. 넷째 줄에는 분류기에 넣을 도토리의 크기 s1,s2,⋯ ,sQs_1, s_2, \cdots, s_Q가 공백으로 구분되어 주어진다.

출력

각 도토리를 분류기에 넣었을 때 떨어져 나오는 구멍 번호를 도토리가 주어진 순서대로 공백으로 구분하여 출력한다.

제한

  • 1≤N≤1051 \le N \le 10^5
  • 1≤ai≤N1 \le a_i \le N
  • 1≤Q≤1051 \le Q \le 10^5
  • 1≤si≤N1 \le s_i \le N

예제1

  1. 예제 1

    입력
    10
    5 6 1 4 9 2 8 10 3 7
    10
    1 2 3 4 5 6 7 8 9 10
    
    예상 출력
    1 1 1 1 1 2 2 5 5 5