#L4205. 「ROI 2022 Day2」挑战

    ID: 5392 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 8 上传者: 标签>贪心数据结构动态规划动态规划差分数组树状数组双指针

「ROI 2022 Day2」挑战

题目描述
译自 ROI 2022 Day2 T4. Большие вызовы

在「天狼星」的项目期间,一支团队正在设计工业机器人。

机器人将为排成一排的 nn 个容器装填零件,这些容器编号从 11nn。第 ii 个容器最多可以容纳 aia_i 个零件。团队组装了 mm 个机器人。最初,第 jj 个机器人有 cjc_j 个零件,其中一部分将放入容器中。此外,第 jj 个机器人有一个作用范围,由两个数字 ljrjl_j \le r_j 表示,意味着机器人只能将零件放入编号从 ljl_jrjr_j 的容器中。机器人试图将尽可能多的零件放入容器中。

机器人有两种类型。如果机器人的类型 tj=0t_j = 0,则其作用范围始终保持不变。而类型为 tj=1t_j = 1 的机器人可以重新编程。如果将编号为 xx 的容器指定为最重要的容器,则每个类型为 11 的机器人的作用范围将最小化扩展,以包含容器 xx。更正式地说,类型为 11 的机器人 jj 的作用范围将变为 [min(lj,x),max(rj,x)][\min(l_j, x), \max(r_j, x)]

对于每个 xx11nn,计算如果编号为 xx 的容器是最重要的容器,并且机器人以最佳方式工作,机器人能够总共放入容器的最大零件数量。


输入格式
输入包含多组数据。第一行包含一个整数 tt (1t2105)(1 \leq t \leq 2\cdot 10^5),表示数据组数。每组数据的格式如下:

  • 每组输入数据的第一行包含两个整数 n,mn, m (1n,m2105)(1 \le n, m \le 2\cdot 10^5),分别表示容器和机器人的数量。
  • 接下来的第二行包含 nn 个整数 aia_i (0ai109)(0 \le a_i \le 10^9),表示每个容器的容量。
  • 接下来的 mm 行,每行包含四个整数 lj,rj,cj,tjl_j, r_j, c_j, t_j $(1 \le l_j \le r_j \le n, 0 \le c_j \le 10^9, t_j \in \{0, 1\})$,分别表示作用范围、初始零件数量和机器人的类型。

n\sum n 为所有输入数据组中 nn 的总和,m\sum m 为所有输入数据组中 mm 的总和。保证 n2105\sum n \leq 2\cdot 10^5m2105\sum m \leq 2\cdot 10^5


输出格式
对于每组输入数据,输出 nn 个整数,表示从 11nn 的每个 xx 的答案。


样例
输入

1
4 3
3 3 2 2
1 2 2 0
3 3 3 0
2 2 4 1

输出

8 7 7 8

数据范围与提示
详细子任务附加限制及分值如下表所示。其中子任务 0 是样例。

子任务 分值 n\sum n 的限制 m\sum m 的限制 附加限制 子任务依赖
1 10 n100\sum n \leq 100 m100\sum m \leq 100 m=1m = 1
2 7 0, 1
3 6 n2000\sum n \leq 2000 m2000\sum m \leq 2000 0, 1-2
4 n2104\sum n \leq 2 \cdot 10^4 m200\sum m \leq 200 0, 1-4
5 12 n105\sum n \leq 10^5 m2000\sum m \leq 2000
6 17 n2104\sum n \leq 2 \cdot 10^4 m2104\sum m \leq 2 \cdot 10^4 ti=1t_i = 1
7 8 n105\sum n \leq 10^5 m105\sum m \leq 10^5 lili+1,riri+1,ti=1l_i \le l_{i + 1}, r_i \le r_{i + 1}, t_i = 1 6, 7
8 ti=1t_i = 1
9 13 对于所有类型为 00 的机器人,ri50r_i \le 50li>n50l_i > n - 50 6-8
10 4 ai=1a_i = 1
11 6 0, 1-10
12 3 n2105\sum n \leq 2 \cdot 10^5 m2105\sum m \leq 2 \cdot 10^5 0, 1-11