#P5308. 修改差分数组与还原

修改差分数组与还原

题目描述

有一个长度为 nn 的数组 aa,初始值全为 00。其差分数组 dd 初始值也全为 00。差分数组与原数组的关系为:a[i]=a[i1]+d[i]a[i] = a[i-1] + d[i](即 aadd 的前缀和)。

现在要对差分数组 dd 进行 mm 次操作,每次操作给出一个整数 kk,表示将 d[k]d[k] 的值加 11。每次操作结束后,请分别输出当前的差分数组 dd 和原数组 aa

输入格式

第一行包含两个整数 nnmm,分别表示数组长度和操作次数。

接下来 mm 行,每行一个整数 kk,表示本次操作要将 d[k]d[k]11

输出格式

2×m2 \times m 行。每连续两行对应一次操作后的结果:第一行输出 nn 个整数,表示差分数组 dd;第二行输出 nn 个整数,表示原数组 aa。整数之间用一个空格隔开。

样例

5 2
2
4
0 1 0 0 0
0 1 1 1 1
0 1 0 1 0
0 1 1 2 2

样例解释
初始时 a=[0,0,0,0,0]a=[0,0,0,0,0]d=[0,0,0,0,0]d=[0,0,0,0,0]
第一次操作 k=2k=2d[2]d[2]11dd 变为 [0,1,0,0,0][0,1,0,0,0],对应的 aa 变为 [0,1,1,1,1][0,1,1,1,1]
第二次操作 k=4k=4d[4]d[4]11dd 变为 [0,1,0,1,0][0,1,0,1,0],对应的 aa 变为 [0,1,1,2,2][0,1,1,2,2]

数据范围与提示

  • 1n1031 \le n \le 10^3
  • 1m1031 \le m \le 10^3
  • 1kn1 \le k \le n
  • 差分数组 dd 中的值不会超过 10310^3