310936: CF1911E. Powers Of Two

Memory Limit:256 MB Time Limit:0 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

E. Powers Of Twotime limit per test3.0 smemory limit per test256 megabytesinputstandard inputoutputstandard output

A positive integer $x$ is called a power of two if it can be represented as $x = 2^y$, where $y$ is a non-negative integer. So, the powers of two are $1, 2, 4, 8, 16, \dots$.

You are given two positive integers $n$ and $k$. Your task is to represent $n$ as the sum of exactly $k$ powers of two.

Input

The only line of the input contains two integers $n$ and $k$ ($1 \le n \le 10^9$, $1 \le k \le 2 \cdot 10^5$).

Output

If it is impossible to represent $n$ as the sum of $k$ powers of two, print NO.

Otherwise, print YES, and then print $k$ positive integers $b_1, b_2, \dots, b_k$ such that each of $b_i$ is a power of two, and $\sum \limits_{i = 1}^{k} b_i = n$. If there are multiple answers, you may print any of them.

ExamplesInput
9 4
Output
YES
1 2 2 4 
Input
8 1
Output
YES
8 
Input
5 1
Output
NO
Input
3 7
Output
NO

Output

题目大意:
一个正整数 x 被称为2的幂,如果它可以表示为 x = 2^y,其中 y 是一个非负整数。因此,2的幂是 1, 2, 4, 8, 16, ...。

给你两个正整数 n 和 k。你的任务是正好用 k 个2的幂来表示 n。

输入数据格式:
输入包含一行,有两个整数 n 和 k(1 ≤ n ≤ 10^9,1 ≤ k ≤ 2 * 10^5)。

输出数据格式:
如果不可能用 k 个2的幂来表示 n,则输出 NO。

否则,输出 YES,然后输出 k 个正整数 b_1, b_2, ..., b_k,使得每个 b_i 都是2的幂,并且它们的和为 n。如果有多个答案,你可以输出其中任何一个。题目大意: 一个正整数 x 被称为2的幂,如果它可以表示为 x = 2^y,其中 y 是一个非负整数。因此,2的幂是 1, 2, 4, 8, 16, ...。 给你两个正整数 n 和 k。你的任务是正好用 k 个2的幂来表示 n。 输入数据格式: 输入包含一行,有两个整数 n 和 k(1 ≤ n ≤ 10^9,1 ≤ k ≤ 2 * 10^5)。 输出数据格式: 如果不可能用 k 个2的幂来表示 n,则输出 NO。 否则,输出 YES,然后输出 k 个正整数 b_1, b_2, ..., b_k,使得每个 b_i 都是2的幂,并且它们的和为 n。如果有多个答案,你可以输出其中任何一个。

加入题单

上一题 下一题 算法标签: