0003. Разбиение

Имя входного файла: input.txt
Имя выходного файла: output.txt
Ограничение по времени: 2 s
Ограничение по памяти: 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.txtoutput.txt
5 2 YES 3 2
30000 3 YES 10000 10000 10000
5 10 NO


Источник: Районная олимпиада РК по информатике, 2007.

Обсудить       Отправить решение



Версия для печати