N+1 행사

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

요약
각 상품의 N+1 행사에서 받은 상품을 다시 행사에 쓸 수 있을 때, 목표 개수를 채우는 최소 구매 개수를 구한다.
난이도

쉬움10점 중 3점

유형
수학, 그리디, 시뮬레이션
정답자
아직 제출이 없습니다

문제

어느 편의점에는 1+11+1 행사, 2+12+1 행사가 있다. 당신이 방문한 편의점은 이를 확장하여 각 상품에 대해 다양한 N+1N+1 행사를 진행하고 있었다. 편의점 상품의 종류는 11번부터 MM번까지 번호가 매겨져 있고, 각 ii번 상품에 대한 행사값 n_in\_i가 있다. 이는 ii번 상품을 n_in\_i개 구매할 경우, ii번 상품을 11개 더 준다는 뜻이다.

해당 편의점은 소비자가 극한의 이득을 취할 수 있도록, 특별히 N+1N+1 행사로 받은 상품 또한 N+1N+1 행사에 사용할 수 있는 상품으로 쳐 주었다. 즉, 만약 2+12+1 행사 상품이 있고 해당 상품을 33개 구매한다면, 해당 상품을 총 55개 받을 수 있다. 단, 이미 N+1N+1 행사에 사용한 상품을 N+1N+1 행사에 다시 사용할 수는 없다.

당신은 ii번 상품에 대해 가져가고 싶은 상품의 목표 개수 a_1,a_2,a_3,⋯ ,a_Ma\_1, a\_2, a\_3, \cdots, a\_M를 설정했다. N+1N+1 행사를 이용하여 가져가고 싶은 각 상품 목표 개수를 모두 만족시키려면, 각 상품을 최소 몇 개 구매해야 하는지 모두 출력해 보자.

입력

첫 번째 줄에 편의점 상품 종류의 개수 MM이 주어진다.

두 번째 줄에 행사값 n_1,n_2,n_3,⋯ ,n_Mn\_1, n\_2, n\_3, \cdots, n\_M이 공백으로 구분되어 정수로 주어진다.

세 번째 줄에 각 상품 종류에 대해, 당신이 가져가고 싶은 상품의 목표 개수 a_1,a_2,a_3,⋯ ,a_Ma\_1, a\_2, a\_3, \cdots, a\_M이 공백으로 구분되어 정수로 주어진다.

출력

첫 번째 줄에 N+1N+1 행사를 이용하여 각 상품 목표 개수를 모두 만족시키기 위해 구매해야 하는 1,2,3,⋯ ,M1, 2, 3, \cdots, M번 상품에 대한 최소 구매 개수를 공백으로 구분하여 순서대로 모두 출력한다.

제한

  • 1≤M≤100,0001 \le M \le 100\\,000
  • 1≤n_i≤100,0001 \le n\_i \le 100\\,000
  • 0≤a_i≤1090 \le a\_i \le 10^9

예제2

  1. 예제 1

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

    입력
    1
    2
    1000000000
    
    예상 출력
    500000001