#B320. [NOISG 2025 Prelim] Snacks

[NOISG 2025 Prelim] Snacks

题目描述

Shor 小鸭已经准备了 nn 个小吃盘子,准备一边看电影一边享用!第 ii 个盘子最初装有一个美味值为 a[i]a[i] 的小吃。

你需要处理 qq 个查询。在第 jj 个查询中,Shor 将按顺序执行以下两个操作:

  1. 吃掉所有美味值在 l[j]l[j]r[j]r[j](包含)之间的小吃。
  2. 然后,将每一个被吃掉的小吃替换为一个美味值为 x[j]x[j] 的新小吃。

在处理任何查询之前,以及每次处理完查询之后,Shor 都希望你确定所有盘子中小吃的美味值总和。

形式化地说,给定一个长度为 nn 的数组 aa,你必须处理 qq 个查询。在处理所有查询之前,打印 aa 中所有元素的总和。在第 jj 个查询中,将所有满足 l[j]a[i]r[j]l[j] \leq a[i] \leq r[j] 的元素 a[i]a[i] 更新为 x[j]x[j],然后打印更新后的 aa 中所有元素的总和。

输入格式

你的程序必须从标准输入读取数据。

输入的第一行包含两个用空格分隔的整数 nnqq

第二行包含 nn 个用空格分隔的整数 a[1],a[2],,a[n]a[1], a[2], \ldots, a[n]

接下来的 qq 行输入中,每一行包含三个用空格分隔的整数。第 jj 行包含 l[j],r[j]l[j], r[j]x[j]x[j],描述了第 jj 个查询。

输出格式

你的程序必须将结果打印到标准输出。

输出应包含 q+1q + 1 行。

输出的第一行应包含一个整数,表示在所有查询之前 aa 中所有元素的总和。

接下来的 qq 行中,第 ii 行应包含一个整数,表示第 ii 个查询后 aa 中所有元素的总和。

5 3
1 6 2 4 6
6 6 3
2 2 3
3 3 5
19
13
14
20
6 4
929 121 5 3 919 72
1 133 0
70 79 0
900 999 0
1 1000 0
2049
1848
1848
0
0
6 5
7 72 727 123 321 9
7 9 10
10 72 727
111 222 30
123 727 99
111 222 333
1259
1263
3352
3259
525
525

说明/提示

子任务

对于所有测试用例,输入将满足以下约束条件:

  • 1n2000001 \leq n \leq 200\,000
  • 0q2000000 \leq q \leq 200\,000
  • 0a[i]1090 \leq a[i] \leq 10^9 对于所有 1in1 \leq i \leq n
  • 0x[j]1090 \leq x[j] \leq 10^9 对于所有 1jq1 \leq j \leq q
  • 0l[j]r[j]1090 \leq l[j] \leq r[j] \leq 10^9 对于所有 1jq1 \leq j \leq q

你的程序将在满足以下特殊性质的输入数据上进行测试:

子任务 分值 特殊性质
00 样例
11 55 q=0q = 0
22 1212 n,q2000n, q \leq 2000
33 2121 l[j]=r[j]200000l[j] = r[j] \leq 200\,000a[i],x[j]200000a[i], x[j] \leq 200\,000
44 1313 l[j]=r[j]l[j] = r[j]
55 1616 x[j]=0x[j] = 0
66 3333

样例 1 解释

此样例适用于子任务 2,3,4,62, 3, 4, 6

样例 2 解释

此样例适用于子任务 2,5,62, 5, 6

样例 3 解释

此样例适用于子任务 2,62, 6

在所有查询之前,数组 aa[7,72,727,123,321,9][7, 72, 727, 123, 321, 9],总和为 12591259

第一次查询后,数组 aa 变为 [10,72,727,123,321,10][10, 72, 727, 123, 321, 10],总和为 12631263

第二次查询后,数组 aa 变为 [727,727,727,123,321,727][727, 727, 727, 123, 321, 727],总和为 33523352

第三次查询后,数组 aa 变为 [727,727,727,30,321,727][727, 727, 727, 30, 321, 727],总和为 32593259

第四次查询后,数组 aa 变为 [99,99,99,30,99,99][99, 99, 99, 30, 99, 99],总和为 525525

第五次查询后,数组 aa 变为 [99,99,99,30,99,99][99, 99, 99, 30, 99, 99],总和为 525525