CF223C Partial Sums

题目描述

你有一个由 $n$ 个整数构成的数组 $a$。数组的下标从 $1$ 到 $n$。我们定义一种操作,包含两个步骤: 1. 首先,通过数组 $a$ 构建部分和数组 $s$,它包含 $n$ 个元素。其中第 $i$ 个元素($1 \leq i \leq n$)为 $s_i = \sum_{j=1}^{i} a_j \bmod 10^9$。这里的 $x \bmod y$ 表示 $x$ 除以 $y$ 的余数。 2. 然后,把数组 $s$ 的内容写回数组 $a$。数组 $s$ 的第 $i$ 个元素($1 \leq i \leq n$)成为数组 $a$ 的第 $i$ 个元素(即 $a_i = s_i$)。 你的任务是,在对数组 $a$ 完全执行 $k$ 次上述操作后,求出最终的数组 $a$。

输入格式

第一行包含两个用空格分隔的整数 $n$ 和 $k$($1 \leq n \leq 2000$,$0 \leq k \leq 10^9$)。 第二行包含 $n$ 个用空格分隔的整数 $a_1, a_2, ..., a_n$,即数组 $a$ 的元素($0 \leq a_i \leq 10^9$)。

输出格式

输出 $n$ 个整数,为执行操作后数组 $a$ 的元素。按数组下标从小到大输出,元素之间用空格分隔。

说明/提示

由 ChatGPT 5 翻译