#ZH4001. k阶前缀和与k阶差分

k阶前缀和与k阶差分

题目描述

给定一个长为 nn 的序列 aa,求出其 kk 阶差分或前缀和.结果的每一项都需要对 10045358091004535809 取模。

回忆一下kk阶前缀和以及kk阶差分:

考虑序列S1S1aa11阶前缀和,那么满足S1i=j=1iajS1_i=\sum_{j=1}^i a_j,那么序列S2S2aa22阶前缀和,那么满足S2i=j=1iS1jS2_i=\sum_{j=1}^iS1_j,依次类推;

考虑序列S1S1aa11阶差分,那么满足S1i=aiai1S1_i=a_i-a_{i-1},那么序列S2S2aa22阶差分,那么满足S2i=S1iS1i1S2_i=S1_i-S1_{i-1},依次类推;

输入格式

第一行三个整数 n,k,tn,k,t,若 t=0t=0 表示求前缀和,t=1t=1 表示求差分。
第二行 nn 个整数,表示序列 aa

输出格式

输出一行 nn 个整数,表示 aakk 阶差分或前缀和。

样例 #1

样例输入 #1

8 3 0
1 9 2 6 0 8 1 7

样例输出 #1

1 12 35 76 135 220 332 478

样例 #2

样例输入 #2

8 3 1
1 9 2 6 0 8 1 7

样例输出 #2

1 6 1004535787 26 1004535788 24 1004535780 28

提示

【数据范围】

1n1051 \le n \le 10^5
0ai1090 \le a_i \le 10^9
1k1091\le k \le 10^{9}