#12761. 差分修复员
差分修复员
差分修复员
题目描述
一名实习生在实现区间加法时,写了两种差分方案。
方案A(正确方案) 对区间 [l, r] 加 v 时记录:
d[l] += v d[r+1] -= v
方案B(错误方案) 对区间 [l, r] 加 v 时记录:
d[l] += v d[r] -= v
现在给定 n、l、r、v,初始数组 a[1..n] 全部为 0。
请分别按照两种方案构造差分数组,并通过前缀和还原最终数组 a。
输出两种方案得到的结果,用来观察两者的区别。
输入格式
输入一行四个整数:
n l r v
数据范围:
1 ≤ n ≤ 50 1 ≤ l ≤ r ≤ n -1000000000 ≤ v ≤ 1000000000
输出格式
输出两行。
第一行:方案A还原得到的数组 a 第二行:方案B还原得到的数组 a
每行输出 n 个整数,数字之间用空格分隔。
样例输入
5 2 4 3
样例输出
0 3 3 3 0
0 3 3 0 0
样例解释
正确差分:
d[2] += 3 d[5] -= 3
恢复数组:
0 3 3 3 0
错误差分:
d[2] += 3 d[4] -= 3
恢复数组:
0 3 3 0 0
可以看到位置 4 没有被正确修改。