Codeforces Round 529 (Div. 3) |
---|
Закончено |
Положительное целое число $$$x$$$ называется степенью двойки, если его можно представить как $$$x = 2^y$$$, где $$$y$$$ — неотрицательное целое число. Иными словами, степени двойки — это числа $$$1, 2, 4, 8, 16, \dots$$$.
Вам даны два положительных целых числа $$$n$$$ и $$$k$$$. Представьте $$$n$$$ как сумму ровно $$$k$$$ степеней двойки.
В единственной строке входных данных заданы два числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 10^9$$$, $$$1 \le k \le 2 \cdot 10^5$$$).
Если невозможно представить $$$n$$$ как сумму $$$k$$$ степеней двойки, выведите NO.
Иначе выведите YES, а затем — $$$k$$$ положительных целых чисел $$$b_1, b_2, \dots, b_k$$$, таких, что $$$b_i$$$ являются степенями двойки, и $$$\sum \limits_{i = 1}^{k} b_i = n$$$. Если ответов несколько, выведите любой из них.
9 4
YES 1 2 2 4
8 1
YES 8
5 1
NO
3 7
NO
Название |
---|