자연수 분할 K (Medium)


답안 제출

Points: 7
시간 제한: 2.0s
메모리 제한: 1G

문제 유형

자연수 \(N\)을 여러 자연수의 합으로 나타내는 것을 자연수 분할이라고 한다.

이 문제에서는 분할에 사용하는 모든 자연수가 \(K\) 이하여야 한다. 같은 자연수를 여러 번 사용할 수 있으며, 사용하는 자연수의 개수에는 제한이 없다.

덧셈의 순서만 다른 표현은 같은 분할로 취급한다. 예를 들어 \(3+2\)와 \(2+3\)은 같은 분할이다.

두 자연수 \(N\)과 \(K\)가 주어졌을 때, \(N\)을 \(K\) 이하의 자연수들의 합으로 나타내는 서로 다른 분할 방법의 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 두 자연수 \(N\)과 \(K\)가 공백으로 구분되어 주어진다.

출력

첫째 줄에 조건을 만족하는 자연수 분할 방법의 수를 \(1,000,000,007\)로 나눈 나머지를 출력한다.

제한 사항

  • \(1 \le N \le 500\)
  • \(1 \le K \le N\)

예제 입력 1

5 2

예제 출력 1

3

예제 설명 1

\(5\)를 \(2\) 이하의 자연수로 분할하는 방법은 다음 세 가지이다.

  • \(2+2+1\)
  • \(2+1+1+1\)
  • \(1+1+1+1+1\)

\(2\)를 반드시 사용할 필요는 없으며, 사용하는 자연수의 개수에도 제한이 없다.

예제 입력 2

5 5

예제 출력 2

7

예제 설명 2

\(K=N\)이면 \(N\) 이하의 모든 자연수를 사용할 수 있으므로 일반적인 \(N\)의 자연수 분할 방법의 수와 같다.


코멘트

현재 작성된 코멘트가 없습니다.