자연수 분할 K 출력 (reverse)


답안 제출

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

문제 유형

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

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

덧셈의 순서만 다른 표현은 같은 분할로 취급한다. 따라서 하나의 분할을 이루는 수들은 큰 수부터 작은 수 순서로 나타낸다. 예를 들어 \(5\)를 \(3\) 이하의 자연수로 분할한 \(3+1+1\)은 3 1 1로 나타낸다.

두 자연수 \(N\)과 \(K\)가 주어졌을 때, \(N\)을 \(K\) 이하의 자연수들의 합으로 나타내는 모든 분할을 역사전순으로 출력하여라.

두 분할에서 처음으로 값이 달라지는 수를 비교했을 때, 그 수가 큰 분할을 먼저 출력한다.

입력

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

출력

조건을 만족하는 자연수 분할을 한 줄에 하나씩 역사전순으로 출력한다.

각 줄에는 분할을 이루는 수들을 큰 수부터 작은 수 순서로 공백으로 구분하여 출력한다.

제한

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

예제 입력

5 3

예제 출력

3 2
3 1 1
2 2 1
2 1 1 1
1 1 1 1 1

예제 설명

\(5\)를 \(3\) 이하의 자연수로 분할하는 방법은 모두 다섯 가지이다. 각 분할을 큰 수부터 작은 수 순서로 나타낸 뒤 역사전순으로 출력한다.


코멘트

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