CF1887C.Minimum Array

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个长度为 nn 的整数数组 aa。然后对其顺序执行 qq 次如下操作:

  • 选择下标 ll 和 rr(1≤l≤r≤n1 \le l \le r \le n)以及一个整数 xx;
  • 将 xx 加到数组 aa 的区间 [l,r][l, r] 的所有元素上。更正式地说,对所有 l≤i≤rl \le i \le r,令 ai:=ai+xa_i := a_i + x。

令 bjb_j 表示在执行前 jj 次操作后得到的数组 aa(0≤j≤q0 \le j \le q)。注意,b0b_0 是未进行任何操作时的数组 aa。

你需要在所有数组 bjb_j 中找到字典序最小的数组。

†^\dagger 如果存在某个下标 ii 使得 xi<yix_i < y_i,且对于所有 j<ij < i 都有 xj=yjx_j = y_j,则数组 xx 的字典序小于数组 yy。换句话说,对于第一个不同的位置 ii,若 xi<yix_i < y_i,则 xx 的字典序小于 yy。

输入格式

每组测试数据包含多个测试用例。第一行包含一个整数 tt(1≤t≤5⋅1051 \le t \le 5 \cdot 10^5),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn(1≤n≤5⋅1051 \le n \le 5 \cdot 10^5),表示数组 aa 的长度。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(−109≤ai≤109-10^9 \le a_i \le 10^9),表示数组 aa 的元素。

第三行包含一个整数 qq(0≤q≤5⋅1050 \le q \le 5 \cdot 10^5),表示对数组进行的操作次数。

接下来的 qq 行,每行包含三个整数 ljl_j、rjr_j 和 xjx_j(1≤lj≤rj≤n,−109≤xj≤1091 \le l_j \le r_j \le n, -10^9 \le x_j \le 10^9),表示每次操作的描述。操作按给定顺序执行。

保证所有测试用例中 nn 的总和以及 qq 的总和不超过 5⋅1055 \cdot 10^5。

输出格式

对于每个测试用例,输出所有数组 bjb_j 中字典序最小的数组。

输入输出样例

  • 输入#1

    2
    4
    1 2 3 4
    2
    1 4 0
    1 3 -100
    5
    2 1 2 5 4
    3
    2 4 3
    2 5 -2
    1 3 1

    输出#1

    -99 -98 -97 4 
    2 1 2 5 4

说明/提示

在第一个测试用例中:

  • b0=[1,2,3,4]b_0 = [1,2,3,4];
  • b1=[1,2,3,4]b_1 = [1,2,3,4];
  • b2=[−99,−98,−97,4]b_2 = [-99,-98,-97,4]。

因此,字典序最小的数组是 b2b_2。

在第二个测试用例中,字典序最小的数组是 b0b_0。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页