아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

대회 상품 정하기

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

요약
1등부터 차례로, 남은 등수의 참가자 모두가 최저가 상품을 받을 수 있는 한도 안에서 가장 비싼 상품을 배정하고, 각 상품을 몇 개 구매해야 하는지 출력한다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 수학, 구현
정답자
아직 제출이 없습니다

문제

3023년 PPC가 성공적으로 종료되었다! 대회 운영자인 포닉스는 대회에 참가한 모든 사람에게 상품을 하나씩 나눠주려고 한다. 하지만 너무 많은 사람이 대회에 참가해서 구매해야 할 상품 수량을 도저히 정리할 수 없었다!

포닉스는 상품을 구매하기 위한 자금 XX와, 구매할 수 있는 MM개의 상품이 적힌 리스트를 가지고 있다. 리스트에 적힌 각 상품의 가격은 각각 a_1,a_2,…,a_Ma\_1, a\_2, \ldots, a\_M이다. 포닉스는 등수가 높은 참가자들에게 더 비싼 가격의 상품을 주기 위해 다음의 규칙으로 각 상품의 수량을 결정하려고 한다.

  • 먼저, 11등을 한 참가자의 상품은 남은 N−1N-1명의 참가자들 모두의 상품을 구매할 수 있는 한도 내에서 가능한 비싼 상품으로 결정한다.
  • 다음으로, 22등을 한 참가자의 상품은 남은 N−2N-2명의 참가자들 모두의 상품을 구매할 수 있는 한도 내에서 가능한 비싼 상품으로 결정한다.
  • 같은 방식으로, ii등을 한 참가자의 상품은 남은 N−iN-i명의 참가자들 모두의 상품을 구매할 수 있는 한도 내에서 가능한 비싼 상품으로 결정한다.

포닉스를 위해 포닉스가 각 상품을 몇 개나 구매해야 하는지 구해 주자!

입력

첫 번째 줄에 참가자 수 NN, 상품 목록의 개수 MM, 그리고 자금을 나타내는 정수 XX가 공백으로 구분되어 주어진다. (1≤N≤1012;1≤M≤106;1≤X≤1018)( 1 \leq N \leq 10^{12}; 1 \leq M \leq 10^6; 1 \leq X \leq 10^{18})

두 번째 줄에 각 상품의 가격을 나타내는 MM개의 정수 a_1,a_2,…,a_Ma\_1, a\_2, \ldots, a\_M 가 공백으로 구분되어 주어진다. (106≥a_1>a_2>…>a_M≥1)( 10^6 \geq a\_1 > a\_2 > \ldots > a\_M \geq 1 )

X≥N⋅a_MX \geq N \cdot a\_M이 성립한다.

출력

각 상품에 대해 필요한 개수를 공백으로 구분해 순서대로 출력한다.

예제2

  1. 예제 1

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

    입력
    1000000000000 5 5000000000000
    16 8 4 2 1
    
    예상 출력
    266666666666 1 1 0 733333333332