#3710. 例3-区间加权更新-差分3

例3-区间加权更新-差分3

题目描述:
给定一个长度为 n 的数组,初始时所有元素均为 0。现有 m 次操作,每次操作给定四个整数 l, r, a, d,表示对区间 [l, r] 的每个位置进行加法操作:

  • l 个位置加上 a
  • l+1 个位置加上 a + d
  • l+2 个位置加上 a + 2d
  • 依此类推,直到第 r 个位置加上 a + (r-l)d

请你利用差分数组的思想快速处理所有操作,并输出最终数组的所有元素。

输入格式:

  • 第一行包含两个正整数 nm
  • 接下来 m 行,每行包含四个整数 l r a d,表示一次区间加权更新操作。(下标从 1 开始)

输出格式:

  • 输出一行 n 个整数,依次表示最终数组的各个元素,数字之间用空格隔开。

样例输入:

5 2
1 3 1 2
2 5 2 1

数据范围:1<=n,m<=10^7

样例输出:

1 5 8 4 5

样例说明:

  • 操作 1:对区间 [1, 3] 更新
    • 第 1 个位置加 1
    • 第 2 个位置加 1+2 = 3
    • 第 3 个位置加 1+4 = 5
      数组变为:1 3 5 0 0
  • 操作 2:对区间 [2, 5] 更新
    • 第 2 个位置加 2
    • 第 3 个位置加 2+1 = 3
    • 第 4 个位置加 2+2 = 4
    • 第 5 个位置加 2+3 = 5
      最终数组为:
      第 1 个位置:1
      第 2 个位置:3 + 2 = 5
      第 3 个位置:5 + 3 = 8
      第 4 个位置:0 + 4 = 4
      第 5 个位置:0 + 5 = 5