만드는 중입니다

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

공주 감옥

면접 대비

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

요약
각 습격마다 용량이 b_j 이상인 빈 감방 가운데 용량이 가장 작고 입구에서 가까운 칸을 골라 번호를 출력합니다.
난이도

쉬움10점 중 3점

유형
배열, 시뮬레이션
정답자
아직 제출이 없습니다

문제

보우저는 공주를 자주 납치하는 악당이며, 공주를 가둬 둘 지하 감옥을 통째로 갖고 있다.

지하 감옥에는 nn개의 감옥 방이 있다. 방에는 1번부터 nn번까지 번호가 붙어 있고, 긴 복도를 따라 같은 간격으로 이 순서대로 늘어서 있다. ii번 방은 공주 aia_i명을 수용한다. 입구는 kk번 방과 k+1k+1번 방 사이에 있다. k=0k=0이면 입구가 첫 번째 방 앞에 있고, k=nk=n이면 마지막 방 뒤에 있다.

보우저는 공주를 납치하기 위해 mm번 출정한다. jj번째 출정에서는 공주 bjb_j명을 납치한다. 공주를 데려온 뒤 보우저는 다음 기준에 따라 방을 고른다.

  1. 수용 인원이 정확히 bjb_j명인 빈 방이 있으면 반드시 그 방을 고른다. 없으면 수용 인원이 bjb_j명보다 많은 빈 방을 고른다.
  2. 조건에 맞는 방 중에서 입구에 가장 가까운 방을 고른다. 거리가 같은 방이 여럿이면 번호가 작은 방을 고른다. 입구에서 방까지의 거리는 둘 사이에 있는 방의 개수로 센다.
  3. 조건에 맞는 빈 방이 없으면 보우저는 공주를 풀어 줄 수밖에 없다.

보우저는 공주를 방에 가둔 뒤 방문을 잠그고 열쇠를 버린다. 따라서 다른 출정에서 납치한 공주를 그 방에 더 넣을 수 없다. 또한 보우저는 한 번의 출정에서 납치한 공주를 두 개 이상의 방에 나눠 넣지 않는다.

입력

첫 줄에 정수 nn, mm, kk가 주어진다. 각각 감옥 방의 개수, 보우저의 출정 횟수, 입구 번호이다 (1≤n,m≤10001 \le n, m \le 1000, 0≤k≤n0 \le k \le n). k=0k=0이면 입구는 첫 번째 방 앞에 있다.

둘째 줄에는 방의 수용 인원 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다 (1≤ai≤10001 \le a_i \le 1000).

셋째 줄에는 각 출정에서 납치하는 공주의 수 b1,b2,…,bmb_1, b_2, \ldots, b_m이 주어진다 (1≤bj≤10001 \le b_j \le 1000).

출력

정수 mm개 c1,c2,…,cmc_1, c_2, \ldots, c_m을 출력한다. cjc_j는 jj번째 출정의 공주를 가둔 방 번호이다. 맞는 방을 찾지 못해 공주를 풀어 준 경우에는 cj=−1c_j = -1로 출력한다.

예제3

  1. 예제 1

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

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

    입력
    6 6 3
    1 2 3 3 2 1
    1 1 1 1 1 1
    
    예상 출력
    1 6 3 4 2 5