하늘에서 떨어지는 NN개의 별

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

요약
N개 지점에 매일 밤 더해지는 별의 수와 상한 K가 주어질 때, D일 동안 어느 지점도 K개를 넘지 않도록 하는 최소 청소 횟수를 구한다.
난이도

쉬움10점 중 3점

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

문제

당신은 DD일 동안 하떨별 마을의 환경 관리자로 일하게 되었다. 하떨별 마을은 하늘에서 별이 떨어지기로 유명한 마을로 별들은 다음과 같은 규칙으로 떨어진다.

  • 별이 떨어지는 위치는 NN개의 점이다. 점은 순서대로 11, 22, ⋯\cdots, NN의 번호를 갖는다.
  • 첫날 낮에 모든 점에 쌓인 별의 개수는 각각 00개다.
  • ii번 점에는 매일 밤 s_is\_i개의 별이 떨어진다. (1≤i≤N)(1 \le i \le N)

별이 많이 쌓이면 폭발할 수 있기 때문에 쌓인 별을 청소해야 한다.

  • 임의의 ii번 점에 쌓인 별의 개수가 KK개를 초과하면 해당 점의 별들이 폭발한다. (1≤i≤N)(1 \le i \le N)
  • 별이 떨어지는 밤이 되기 전, 낮에 청소 작업을 할 수 있다. 청소 작업을 진행하면 모든 점에 쌓인 별이 00개가 된다.

여러분은 DD일 동안 떨어진 별이 폭발하지 않게 관리해야 한다. DD일 동안 별이 폭발하지 않도록 하는 최소 청소 횟수를 구해보자.

입력

첫 번째 줄에 정수 NN, DD, KK가 공백으로 구분되어 주어진다.

두 번째 줄에 정수 s_1,s_2,⋯ ,s_Ns\_1, s\_2, \cdots, s\_N이 공백으로 구분되어 주어진다.

출력

첫 번째 줄에 DD일 동안 별이 폭발하지 않도록 할 수 있는 최소 청소 횟수를 출력한다.

제한

  • 1≤N,D,K≤1001 \le N, D, K \le 100
  • 1≤s_i≤K1 \le s\_i \le K
  • 1≤i≤N1 \le i \le N

예제1

  1. 예제 1

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