AT_codefestival_2016_final_b Exactly N points

题目描述

在某一年的 CODE FESTIVAL 决赛中,共有 $N$ 道题目被出题。 第 $i$ 道题目的分值为 $i$ 分。 高桥君希望在本次比赛中恰好获得 $N$ 分,为此他正在思考应该选择哪些题目来解答。 由于分值高的题目通常更难,他希望在所有分值之和恰好为 $N$ 的题目集合中,使得所选题目分值的最大值尽可能小。 请你求出高桥君应该解答的题目集合。

输入格式

输入为以下格式,从标准输入读取。 > $N$

输出格式

请输出一个集合,使得所选题目的分值之和恰好为 $N$,并且集合中分值的最大值最小。将该集合中题目的编号逐行输出,每行输出一个编号。无需按升序输出。 如果存在多个满足条件的集合,输出其中任意一个均可。

说明/提示

### 限制 - $1 \leq N \leq 10^7$ ### 部分得分 - 若能正确解决 $1 \leq N \leq 1000$ 的数据集,将获得 $200$ 分。 - 若能正确解决无额外限制的数据集,将获得上述 $200$ 分之外的 $100$ 分。 ### 样例解释 1 只解答第 $4$ 题也可以恰好获得 $4$ 分,但选择第 $1$ 和第 $3$ 题可以使所选题目的最大分值更小。 ### 样例解释 2 集合 $\{3,4\}$ 也是一种可行的选择。 由 ChatGPT 4.1 翻译