0003. Разбиение
Input file name: | input.txt |
Output file name: | output.txt |
Time limit: | 2 s |
Memory limit: | 64 megabytes |
Петя всерьез интересуется математикой. Недавно он узнал про разбиения чисел на слагаемые. Разбиениями на слагаемые называются способы представить число в виде суммы положительных целых чисел. Например, разбиениями числа 5 на слагаемые являются 5, 4+1, 3+2, 3+1+1, 2+1+1+1 и 1+1+1+1+1. Других разбиений у числа 5 нет. Недавно Петю заинтересовал вопрос, существует ли разбиение числа N ровно на K слагаемых. С этим вопросом он и обратился к Вам.
Формат входного файла
В первой строке входного файла находятся числа N и K (1 ≤ N ≤ 30000, 1 ≤ K ≤ 10).
Формат выходного файла
В первую строку выходного файла выведите "YES", если искомое разбиение существует и "NO" иначе. Если разбиение существует, то во второй строке в невозрастающем порядке выведите слагаемые, составляющие это разбиение.
Пример:
input.txt | output.txt |
---|---|
5 2 | YES 3 2 |
30000 3 | YES 10000 10000 10000 |
5 10 | NO |
Source: Районная олимпиада РК по информатике, 2007.
Discuss Submit a solution
Printable version