만드는 중입니다

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

얼음 성장

면접 대비

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

요약
얼음 두께가 매일 a_i/5씩 변하고 0 아래로 내려가지 않을 때, 각 사람마다 두께가 자신이 요구하는 최소값에 도달하는 날의 수를 구한다.
난이도

보통10점 중 4점

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

문제

얼음의 성장은 기온에 달려 있다. 경험 법칙에 따르면, 24시간 평균 기온이 영하 5도일 때마다 얼음이 1 cm 자라고, 영상 5도일 때마다 얼음이 1 cm 녹는다. 예를 들어, 평균 기온이 각각 −3-3, 11, −7-7도인 날이 사흘 있으면 총 3−1+7=93 - 1 + 7 = 9도의 추위가 누적되어 3일째가 끝날 때 얼음 두께는 1.8 cm가 된다. 물론 얼음 두께는 음수가 될 수 없다. 얼음이 충분히 두꺼우면 그 위에서 스케이트를 탈 수 있다. 필요한 얼음 두께는 사람마다 안전하다고 느끼는 기준이 다르기 때문에 사람에 따라 다르다.

현재 얼음은 없지만, 앞으로 nn일 동안의 일기 예보가 막 들어왔다. kk명의 사람들이 각자 며칠 동안 스케이트를 탈 수 있는지, 즉 각 날이 끝났을 때 얼음 위에서 스케이트를 탈 수 있는 날이 며칠인지 알고 싶어 한다.

입력

입력은 다음과 같다.

  • 첫째 줄에 두 정수 nn (1≤n≤1051\leq n \leq 10^5)과 kk (1≤k≤1051 \leq k \leq 10^5)가 주어진다. nn은 날의 수, kk는 사람의 수이다.
  • 둘째 줄에 nn개의 정수 a_1,…,a_na\_1, \ldots, a\_n (−106≤a_i≤106-10^6 \leq a\_i \leq 10^6)이 주어진다. a_ia\_i는 ii일째의 평균 기온이다.
  • 셋째 줄에 kk개의 정수 b_1,…,b_kb\_1, \ldots, b\_k (1≤b_j≤1061 \leq b\_j \leq 10^6)가 주어진다. b_jb\_j는 jj번째 사람이 스케이트를 타려면 얼음이 최소한 몇 cm는 되어야 하는지를 나타낸다.

출력

한 줄에 kk개의 정수 c_1,…,c_kc\_1, \ldots, c\_k를 출력한다. c_jc\_j는 jj번째 사람이 각 날이 끝났을 때 얼음 위에서 스케이트를 탈 수 있는 날의 수이다.

예제2

  1. 예제 1

    입력
    3 2
    -3 1 -7
    1 2
    
    예상 출력
    1 0
    
  2. 예제 2

    입력
    5 3
    -5 -5 15 -5 -5
    1 2 3
    
    예상 출력
    4 2 0