문제5061--레벨 업

5061: 레벨 업

[만든사람 : ]
시간제한 : 1.000 sec  메모리제한 : 128 MiB

문제 설명

  여러분은 \(N\)명의 게임 캐릭터를 육성하려고 한다. \(i (1 \le i \le N)\) 번째 캐릭터의 현재 레벨은 \(L_i\)이다.

  캐릭터의 레벨을 올리기 위해 아래와 같은 트레이닝을 총 \(M\)번 진행할 것이다.


  • 레벨이 낮은 순서대로 \(K\)명의 캐릭터를 선택한다. 레벨이 같은 캐릭터가 여러 명일 경우 그 중 아무 캐릭터나 선택한다. 
  • 선택된 캐릭터들의 레벨을 각각 1만큼 올린다.


  예를 들어, \(M = 4, K = 3\)이고 \(N = 5\)명의 캐릭터의 레벨이 각각 5, 1, 7, 5, 4라고 하자. 트레이닝을 한 번 진행하면 2, 4, 5번째 캐릭터의 레벨이 오르고, 이때 캐릭터의 레벨은 각각 5, 2, 7, 6, 5가 된다.

  위의 예시에서 각 트레이닝을 진행한 이후 캐릭터의 레벨은 다음과 같다.

  \(M\)번의 트레이닝이 모두 끝난 이후 \(N\)명의 캐릭터의 레벨을 오름차순으로 출력하는 프로그램을 작성하시오. 



입력 설명

  첫 번째 줄에 캐릭터의 수를 나타내는 정수 \(N\)이 주어진다.

  두 번째 줄에 각 캐릭터의 레벨을 나타내는 정수 \(L_1, · · ·, L_N\)이 공백으로 구분되어 주어진다.

  세 번째 줄에 정수 \(M, K\)가 공백으로 구분되어 주어진다.

  • \(1 \le N \le 100 000\) 
  • \(1 \le M \le 10^9\) 
  • \(1 \le K \le N\) 
  • \(1 \le L_i \le 10^9 (1 \le i \le N)\) 

  1. (4점) \(N \le 1 000, M \le 1 000. \) 
  2. (10점) \(K = 1. \) 
  3. (32점) \(M \le 100 000. \) 
  4. (54점) 추가 제약 조건 없음.


출력 설명

첫 번째 줄에 모든 트레이닝이 끝난 이후 캐릭터들의 레벨을 오름차순으로 정렬하여 출력한다

입력 예시 Copy

5
5 1 7 5 4
4 3

출력 예시 Copy

5 7 7 7 8 

게시판

작성자제목(댓글)
글이 없습니다.

출처/분류