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

k阶前缀和与k阶差分

题目描述

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

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

考虑序列S1S1是aa的11阶前缀和,那么满足S1i=∑j=1iajS1_i=\sum_{j=1}^i a_j,那么序列S2S2是aa的22阶前缀和,那么满足S2i=∑j=1iS1jS2_i=\sum_{j=1}^iS1_j,依次类推;

考虑序列S1S1是aa的11阶差分,那么满足S1i=ai−ai−1S1_i=a_i-a_{i-1},那么序列S2S2是aa的22阶差分,那么满足S2i=S1i−S1i−1S2_i=S1_i-S1_{i-1},依次类推;

输入格式

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

输出格式

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

样例 #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

提示

【数据范围】

1≤n≤1051 \le n \le 10^5
0≤ai≤1090 \le a_i \le 10^9
1≤k≤1091\le k \le 10^{9}