#1236. 班级调整

班级调整

题目描述

学校有 nn 个班级,一开始每个班级的人数是 a1,a2,…,ana_1, a_2, \dots, a_n。

现在需要进行 qq 次调整,第 ii 次调整形如「给编号在 [li,ri][l_i, r_i] 内的每个班级都增加 cic_i 人」(cic_i 可以为负数,表示减少)。

请你输出所有调整完成之后,每个班级的人数。

输入格式

第一行一个整数 nn,表示班级数。

第二行 nn 个整数,第 ii 个整数表示第 ii 个班级的初始人数。

第三行一个整数 qq,表示调整次数。

接下来 qq 行,每行三个整数 l,r,cl, r, c,表示给编号在 [l,r][l,r] 内的每个班级都增加 cc 人。

输出格式

一行 nn 个整数,第 ii 个整数表示调整完成后第 ii 个班级的人数。

数据范围

1≤n,q≤2×1051 \le n, q \le 2\times 10^5,0≤ai≤10000 \le a_i \le 1000,−1000≤c≤1000-1000 \le c \le 1000,1≤l≤r≤n1 \le l \le r \le n。

样例

输入样例 1

5
10 15 20 18 12
2
2 4 3
1 3 2

输出样例 1

12 20 25 21 12

提示

样例中先给 2∼42\sim4 班各加 33 人得到 [10,18,23,21,12][10,18,23,21,12],再给 1∼31\sim3 班各加 22 人得到 [12,20,25,21,12][12,20,25,21,12]。

做法:一维差分数组,区间加 O(1)O(1),最后前缀和还原,总复杂度 O(n+q)O(n+q)。