What would be the most efficient way of solving the following problem? -
A toy set contains blocks showing the numbers from 1 to 9. There are plenty of blocks showing each number and blocks showing the same number are indistinguishable. We want to examine the number of different ways of arranging the blocks in a sequence so that the displayed numbers add up to a fixed sum. For example, suppose the sum is 4. There are 8 different arrangements:
1 1 1 1
1 1 2
1 2 1
1 3
2 1 1
2 2
3 1
4
The rows are arranged in dictionary order (that is, as they would appear if they were listed in dictionary). In each of the cases below, you are given the desired sum S and a number K. You have to write down the Kth line when all arrangements that add up to S are written down as described above. For instance, if S is 4 and K is 5, the answer is 2 1 1. Remember that S may be large, but the numbers on the blocks are only from 1 to 9.
(a) S = 9, K = 156 (b) S = 11, K = 881 (c) S = 14, K = 4583
Thanks!
Source - Zonal Informatics Olympiad 2012 Question Paper