#P0885. 复印任务单
复印任务单
题目背景
学校资料室有一种自动复印任务单。每张任务单刚进入系统时需要先进行准备,准备完成后才会开始派生新的任务单。
在第 小时时,系统中有且仅有 张刚刚出现的任务单。老师想知道,经过 个小时后,系统中共有多少张任务单。
题目描述
每张任务单从出现时开始计时,刚出现时的存在时间记为 小时。
每经过一个小时,系统按照以下规则处理所有任务单:
- 存在时间为 小时或 小时的任务单只进行准备,不会产生新的任务单;
- 存在时间为 小时或 小时的任务单会产生 张新的任务单;
- 每个小时结束时,原有任务单的存在时间增加 小时;
- 当一张任务单的存在时间达到 小时时,它会在完成本小时的派生后立即从系统中移除;
- 本小时新产生的任务单存在时间记为 小时,并且不会在产生它的同一个小时继续派生新的任务单。
也就是说,每张任务单会分别在其出现后的第 小时和第 小时各产生 张新任务单,并在第 小时产生新任务单后被移除。
请计算经过 小时后,系统中任务单的数量。由于答案可能很大,只需要输出答案对 取模后的结果。
输入格式
输入一行一个整数 ,表示经过的小时数。
输出格式
输出一行一个整数,表示经过 小时后系统中的任务单数量对 取模后的结果。
样例
2
1
4
4
7
14
样例说明
对于样例 ,初始任务单在前两个小时内只进行准备,不会产生新的任务单,因此经过 小时后,系统中仍然只有 张任务单。
对于样例 ,任务单在各个时刻的数量如下表所示。表中的“存在 小时”表示已经在系统中完整存在了 个小时的任务单数量。
| 经过时间 | 存在 小时 | 存在 小时 | 存在 小时 | 存在 小时 | 本小时发生的变化 | 系统总数 |
|---|---|---|---|---|---|---|
| 小时 | 系统中初始有 张任务单 | |||||
| 小时 | 初始任务单完成第 小时的准备 | |||||
| 小时 | 初始任务单完成第 小时的准备 | |||||
| 小时 | 初始任务单产生 张新任务单 | |||||
| 小时 | 初始任务单再次产生 张新任务单,随后被移除 |
第 小时结束时,第 小时产生的 张任务单已经存在 小时,第 小时又产生了 张新任务单,而最初的任务单已经被移除,因此系统中共有 张任务单。
数据范围
对于 的数据,保证 。
对于另外 的数据,保证 。
对于全部数据,保证 。