QOJ.ac

QOJ

実行時間制限: 3 s メモリ制限: 256 MB 満点: 100

#799. 玩具

統計

Johnny 收集玩具。他的收藏中可能包含许多不同类型的玩具:汽车、卡车、挖掘机等等。他可能拥有不止一个同种类型的玩具,例如四辆卡车,对他而言,这些玩具是无法区分的。

Emma 问 Johnny 他有多少个玩具。Johnny 不想透露这个秘密,于是用一个谜语回答了她(这是他的典型风格):如果我每天选择一套不同的玩具,我可以玩 $n$ 天。换句话说,对于任意两天,都存在一种玩具,其数量是不同的。在这里,Johnny 将空集也视为一套有效的玩具。

Emma 既不喜欢这个答案,也不喜欢这个谜语,但她非常好奇 Johnny 到底有多少个玩具。她请求你的帮助。你能确定 Johnny 收藏中玩具总数的全部可能性吗?

输入格式

标准输入的第一行(也是唯一一行)包含一个整数 $n$ ($1 \le n \le 10^9$)。

输出格式

第一行应包含一个整数 $r$,表示解的数量(即 Johnny 收藏中玩具总数的可能性数量)。

第二行应包含一个严格递增的 $r$ 个整数的序列,表示 Johnny 收藏中可能拥有的玩具总数。

样例

样例输入 1

12

样例输出 1

4
4 5 6 11

说明 1

Johnny 可能拥有: 两辆卡车、一辆汽车和一台挖掘机(总共 4 个玩具), 三辆卡车和两辆汽车(总共 5 个玩具), 五辆卡车和一辆汽车(总共 6 个玩具), 十一辆卡车(总共 11 个玩具)。

这些选项中的每一个都能保证正好 12 天的乐趣。例如,如果他有 11 辆卡车,他可以在第 $i$ 天(对于 $i = 1, \dots, 12$)选择 $i - 1$ 辆卡车。

样例输入 2

36

样例输出 2

8
6 7 8 10 11 13 18 35

说明 2

注意,有两种不同的 10 个玩具的组合可以保证 36 天的乐趣: 一辆卡车、一辆汽车和八台挖掘机, 五辆卡车和五台挖掘机。

尽管如此,输出中只包含其中一个。 为了得到总共 6 个玩具,Johnny 可以拥有一辆卡车、一辆汽车、两台挖掘机和两辆公交车。

子任务

测试集分为以下具有额外约束的子任务。每个子任务中的测试由一个或多个独立的测试组组成。每个测试组可能包含一个或多个测试用例。

子任务 数据范围 分值
1 $n \le 50$ 19
2 $n \le 10\,000$ 20
3 $n \le 100\,000$ 20
4 $n \le 10^8$ 20
5 无额外约束 21

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.