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.
InputThe 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$).
OutputIf 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.
ExamplesInput9 4Output
YES 1 2 2 4Input
8 1Output
YES 8Input
5 1Output
NOInput
3 7Output
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。如果有多个答案,你可以输出其中任何一个。
一个正整数 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。如果有多个答案,你可以输出其中任何一个。