#P14775. [Bulgarian2023组队赛]sad

    ID: 13991 传统题 3000ms 512MiB 尝试: 6 已通过: 1 难度: 9 上传者: 标签>CF2600数学分治树状数组数据结构二分

[Bulgarian2023组队赛]sad

题目描述

考虑一个由自然数组成的序列:

x1,x2,,xkx_1, x_2, \dots, x_k

以及一个分数 cc。若某个数 xix_i 小于整个序列平均数的 cc 倍,则称 xix_i 是“忧伤的(sad)”。形式化地,若

xi<cx1+x2++xkk,x_i < c \cdot \frac{x_1 + x_2 + \dots + x_k}{k},

则称 xix_i 为“忧伤的”。

为了让序列中不再存在“忧伤的”数,允许执行如下操作:

  • 选择某个 xix_i,将其增加 11

但遗憾的是,执行一次这样的操作后,不仅被增加的这个数仍然可能是“忧伤的”,甚至一些原本不是“忧伤的”数也可能变成“忧伤的”。

我们定义:

t(c,{x1,x2,,xk})t\bigl(c, \{x_1, x_2, \dots, x_k\}\bigr)

为使得序列中不存在“忧伤的”数所需的最少操作次数。

给定自然数 n,qn,q,数组

a1,a2,,an,a_1, a_2, \dots, a_n,

以及 qq 个三元组 (l,r,c)(l,r,c)。对于每个询问,请求出:

t(c,{al,al+1,,ar}).t\bigl(c, \{a_l, a_{l+1}, \dots, a_r\}\bigr).

请特别注意内存限制。


输入格式

第一行输入两个整数 nq
第二行输入 n 个自然数:

a1,a2,,an.a_1, a_2, \dots, a_n.

接下来 q 行,每行输入三个整数 l,r,p,其中

c=p1000.c = \frac{p}{1000}.

输出格式

对于每个询问,输出一行对应的答案。


数据范围

  • 1n,q5000001 \le n, q \le 500\,000
  • 1lrn1 \le l \le r \le n
  • 1ai10000000001 \le a_i \le 1\,000\,000\,000
  • 0p10000 \le p \le 1000

子任务

子任务 分值 额外限制
1 5 n,q,ai100n, q, a_i \le 100
2 10 n,q5000n, q \le 5\,000
3 25 n,q100000n, q \le 100\,000
4 n100000n \le 100\,000
5 35

只有在正确通过该子任务的全部测试后,才能获得该子任务的分数。


样例

输入

3 2
3 2 1
1 3 900
3 3 1000

输出

3
0