CF1157D N Problems During K Days
题目描述
Polycarp 需要在一次重要的编程比赛前解决恰好 $n$ 道题目来提升自己的编程能力。但这场比赛即将开始,准确地说,还有 $k$ 天就要开始了。这意味着 Polycarp 恰好有 $k$ 天进行训练!
Polycarp 不想拖延,所以他希望在这 $k$ 天中的每一天至少解决一道题目。同时,他也不想过度劳累,因此如果他某一天解决了 $x$ 道题目,那么第二天他解决的题目数不能超过 $2x$。最后,他希望自己的能力有所提升,所以如果他某一天解决了 $x$ 道题目,那么第二天他至少要解决 $x+1$ 道题目。
更正式地说:设 $[a_1, a_2, \dots, a_k]$ 为 Polycarp 每天解决的题目数数组。第 $i$ 天他解决了 $a_i$ 道题目。则需满足以下条件:
- 所有 $a_i$ 的和($i$ 从 $1$ 到 $k$)应为 $n$;
- 对于每个 $i$($1 \le i \le k$),$a_i$ 必须大于 $0$;
- 对于每个 $i$($1 \le i < k$),应满足 $a_i < a_{i+1} \le 2a_i$。
你的任务是找到任意一个满足上述条件的长度为 $k$ 的数组 $a$,或者说明不存在这样的数组。
输入格式
输入的第一行包含两个整数 $n$ 和 $k$($1 \le n \le 10^9, 1 \le k \le 10^5$),分别表示 Polycarp 想要解决的题目总数和训练天数。
输出格式
如果不存在满足 Polycarp 训练规则的长度为 $k$ 的数组 $a$,则第一行输出 “NO”。
否则,第一行输出 “YES”,第二行输出 $k$ 个整数 $a_1, a_2, \dots, a_k$,其中 $a_i$ 表示 Polycarp 第 $i$ 天应解决的题目数。如果有多种答案,可以输出任意一种。
说明/提示
由 ChatGPT 4.1 翻译