#E0046. 数列叠加

数列叠加

题目描述

给定一个长度为 nn 的数列 a1,a2,,ana_1, a_2, \ldots, a_n,以及一个长度为 m(mn)m(m \le n) 的数列 b1,b2,,bmb_1, b_2, \ldots, b_m

你需要对数列 aa 进行 nm+1n-m+1 轮操作:第 ii 轮操作,你需要选择从 aia_i 开始的连续 mm 个数,并将每个元素加上数列 bb 上对应元素的数值。

更具体一点地说:

  • 11 轮:你需要将 a1a_1 加上 b1b_1a1a1+b1a_1 \leftarrow a_1 + b_1),将 a2a_2 加上 b2b_2a2a2+b2a_2 \leftarrow a_2 + b_2),……,将 ama_m 加上 bmb_mamam+bma_m \leftarrow a_m + b_m
  • 22 轮:你需要将 a2a_2 加上 b1b_1a2a2+b1a_2 \leftarrow a_2 + b_1),将 a3a_3 加上 b2b_2a3a3+b2a_3 \leftarrow a_3 + b_2),……,将 am+1a_{m+1} 加上 bmb_mam+1am+1+bma_{m+1} \leftarrow a_{m+1} + b_m
  • 33 轮:你需要将 a3a_3 加上 b1b_1a3a3+b1a_3 \leftarrow a_3 + b_1),将 a4a_4 加上 b2b_2a4a4+b2a_4 \leftarrow a_4 + b_2),……,将 am+2a_{m+2} 加上 bmb_mam+2am+2+bma_{m+2} \leftarrow a_{m+2} + b_m
  • ……
  • n+m1n+m-1 轮:你需要将 anm+1a_{n-m+1} 加上 b1b_1anm+1a1+b1a_{n-m+1} \leftarrow a_1 + b_1),将 anm+2a_{n-m+2} 加上 b2b_2anm+2a2+b2a_{n-m+2} \leftarrow a_2 + b_2),……,将 ana_n 加上 bmb_manam+bma_n \leftarrow a_m + b_m

输出进行完上述 nm+1n-m+1 轮操作之后的数列 aa

输入格式

第一行,两个整数 nnmm1mn21051 \le m \le n \le 2 \cdot 10^5)。

第二行,nn 个整数 a1,a2,,an(1ai109)a_1, a_2, \ldots, a_n(1 \le a_i \le 10^9)

第三行,mm 个整数 b1,b2,,bm(1bi109)b_1, b_2, \ldots, b_m(1 \le b_i \le 10^9)

输出格式

输出共一行,包含 nn 个整数,两两之间以一个空格分隔,表示执行完上述 nm+1n-m+1 轮操作之后的数列 aa

6 2
1 1 1 1 1 1
1 1
2 3 3 3 3 2
8 5
1 2 3 4 5 6 7 8
1 2 3 4 5
2 5 9 14 19 18 16 13

说明/提示

数据规模与约定

  • 对于 30%30\% 的数据,mn20;ai,bi103m \le n \le 20; a_i, b_i \le 10^3
  • 对于 60%60\% 的数据,mn2000;ai,bi106m \le n \le 2000; a_i, b_i \le 10^6
  • 对于 100%100\% 的数据,1mn2105;1ai,bi1091 \le m \le n \le 2 \cdot 10^5; 1 \le a_i, b_i \le 10^9