{"raw_statement":[{"iden":"background","content":"### 由于技术限制，请不要使用 C++ 14 (GCC 9) 提交本题。\n\n这是一道交互题，你只需要实现代码中要求的函数。\n\n你的代码不需要引用任何额外的头文件，也不需要实现 `main` 函数。"},{"iden":"statement","content":"Khong 阿姨正在给附近一所学校的学生准备 $n$ 盒糖果。盒子的编号分别为 $0$ 到 $n - 1$，开始时盒子都为空。第 $i$ 个盒子 $(0 \\leq i \\leq n - 1)$ 至多可以容纳 $c[i]$ 块糖果（容量为 $c[i]$）。\n\nKhong 阿姨花了 $q$ 天时间准备糖果盒。在第 $j$ 天 $(0 \\leq j \\leq q - 1)$，她根据三个整数 $l[j]$、 $r[j]$ 和 $v[j]$ 执行操作，其中 $0 \\leq l[j] \\leq r[j] \\leq n - 1$ 且 $v[j] \\neq 0$。对于每个编号满足 $l[j] \\leq k \\leq r[j]$ 的盒子 $k$：\n\n- 如果 $v[j] > 0$，Khong 阿姨将糖果一块接一块地放入第 $k$ 个盒子，直到她正好放了 $v[j]$ 块糖果或者该盒子已满。也就是说，如果该盒子在这次操作之前已有 $p$ 块糖果，那么在这次操作之后盒子将有 $\\min(c[k], p + v[j])$ 块糖果。\n\n- 如果 $v[j] < 0$，Khong 阿姨将糖果一块接一块地从第 $k$ 个盒子取出，直到她正好从盒子中取出 $-v[j]$ 块糖果或者该盒子已空。也就是说，如果该盒子在这次操作之前已有 $p$ 块糖果，那么在这次操作之后盒子将有 $\\max(0, p + v[j])$ 块糖果。\n\n你的任务是求出 $q$ 天之后每个盒子中糖果的数量。"},{"iden":"input","content":"**实现细节**\n\n你要实现以下函数：\n\n```cpp\nstd::vector<int> distribute_candies(\n  \tstd::vector<int> c, std::vector<int> l, \n  \tstd::vector<int> r, std::vector<int> v)\n```\n\n- $c$：一个长度为 $n$ 的数组。 对于 $0 \\leq i \\leq n - 1$, $c[i]$ 表示盒子 $i$ 的容量。\n\n- $l$、 $r$ 和 $v$：三个长度为 $q$ 的数组。 在第 $j$ 天, 对于 $0 \\leq j \\leq q - 1$，Khong 阿姨执行由整数 $l[j]$、$r[j]$ 和 $v[j]$ 决定的操作，如题面所述。"},{"iden":"output","content":"- 该函数应该返回一个长度为 $n$ 的数组。用 $s$ 表示这个数组。 对于 $0 \\leq i \\leq n - 1$，$s[i]$ 应为 $q$ 天以后盒子 $i$ 中的糖果数量。"},{"iden":"note","content":"**例 1**\n\n考虑如下调⽤：\n`distribute_candies([10, 15, 13], [0, 0], [2, 1], [20, -11])`\n\n这表示盒子 $0$ 的容量为 $10$ 块糖果，盒子 $1$ 的容量为 $15$ 块糖果，盒子 $2$ 的容量为 $13$ 块糖果。\n\n在第 $0$ 天结束时，盒子 $0$ 有 $\\min(c[0], 0 + v[0]) = 10$ 块糖果，盒子 $1$ 有 $\\min(c[1], 0 + v[0]) = 15$ 块糖果，盒子 2 有 $\\min(c[2], 0 + v[0]) = 13$ 块糖果。\n\n在第 $1$ 天结束时，盒子 $0$ 有 $\\max(0, 10 + v[1]) = 0$ 块糖果，盒子 $1$ 有 $\\max(0, 15 + v[1]) = 4$ 块糖果。因为 $2 > r[1]$，盒子 $2$ 中的糖果数量没有变化。每一天结束时糖果的数量总结如下：\n\n| 天 | 盒子 $0$ | 盒子 $1$ | 盒子 $2$ |\n| :----------: | :----------: | :----------: | :----------: |\n| $0$ | $10$ | $15$ | $13$ |\n| $1$ | $0$ | $4$ | $13$ |\n\n就此情况，函数应该返回 $[0, 4, 13]$。\n\n**约束条件**\n\n- $1 \\le n \\le 200 000$\n\n- $1 \\le q \\le 200 000$\n- $1 \\le c[i] \\le 10 ^ 9$ （对所有 $0 \\le i \\le n - 1$）\n- $0 \\le l[j] \\le r[j] \\le n - 1$（对所有 $0 \\le j \\le q - 1$）\n\n- $−10 ^ 9 \\le v[j] \\le 10 ^ 9$ , $v[j] ≠ 0$（对所有 $0 \\le j \\le q - 1$）\n\n**子任务**\n\n1. （$3$ 分）$n, q \\leq 2000$\n2. （$8$ 分）$v[j] > 0$（对所有 $0 \\le j \\le q - 1$）\n3. （$27$ 分）$c[0] = c[1] = \\cdots = c[n - 1]$\n4. （$29$ 分）$l[j] = 0$ 和 $r[j] = n - 1$（对所有 $0 \\leq j \\leq q - 1$）\n5. （$33$ 分） 没有额外的约束条件。\n\n**评测程序示例**\n\n评测程序示例读入如下格式的输入：\n\n- 第 $1$ 行: $n$\n- 第 $2$ 行: $c[0] ~ c[1] ~ \\cdots ~ c[n - 1]$\n- 第 $3$ 行: $q$\n- 第 $4 + j$ 行 ( $0 \\leq j \\leq q - 1$): $l[j] ~ r[j] ~ v[j]$\n\n评测程序示例按照以下格式打印你的答案：\n\n第 $1$ 行: $s[0] ~ s[1] ~ \\cdots ~ s[n - 1]$"}],"translated_statement":null,"sample_group":[["3\n10 15 13\n2\n0 2 20\n0 1 -11\n","0 4 13\n"]],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}