A. 累加序列

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:Special Judge

题目描述

给定一个长为 的正整数序列 , , ,

定义 一次操作为:对于一个正整数 ,从前往后将 变为

具体地,用 C++ 代码实现如下:

for(int i = 1; i <= n-k; ++i)  a[i] += a[i + k];

你想让这个正整数序列在经历了不超过 次操作以后使得 变成 ,你想知道怎样的操作可以得到这样的结果。

输入格式

输入一个数 ,表示序列长度。

输出格式

第一行输出一个数 ,表示操作数个数。

第二行 个数,表示每个操作的 值。

样例

样例输入 1

2

样例输出 1

1
1

样例输入 2

5

样例输出 2

3
2 4 1

数据范围与提示

对于所有数据,

对第一组样例,进行一次 的操作即可让 的值变为 ,即为整个序列的和。

对于第二组样例,一开始正整数序列为 , , ,经历 操作后为 , , , , ,经历 操作后为 , , , , ,经历 操作后为 , , , , ,即为结果。

注意输出格式