给定一个长为 的正整数序列 , , , 。
定义 一次操作为:对于一个正整数 ,从前往后将 变为 。
具体地,用 C++ 代码实现如下:
C++
for(int i = 1; i <= n-k; ++i) a[i] += a[i + k];
你想让这个正整数序列在经历了不超过 次操作以后使得 变成 ,你想知道怎样的操作可以得到这样的结果。
输入一个数 ,表示序列长度。
第一行输出一个数 ,表示操作数个数。
第二行 个数,表示每个操作的 值。
2
1 1
5
3 2 4 1
对于所有数据, 。
对第一组样例,进行一次 的操作即可让 的值变为 ,即为整个序列的和。
对于第二组样例,一开始正整数序列为 , , ,经历 操作后为 , , , , ,经历 操作后为 , , , , ,经历 操作后为 , , , , ,即为结果。
注意输出格式。