CFCF2173F.Isla's Memory Thresholds

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

我希望有一天,你能与那个你珍惜的人重逢。

—— Plastic Memories

在 Plastic Memories 的世界中,Isla 正在收集 nn 个记忆碎片。第 ii 个碎片的大小为 aia_i,且这些大小是非增序排列的,即 a1a2ana_1 \ge a_2 \ge \cdots \ge a_n

在回收过程中,Isla 会处理一个范围内的碎片,并将它们的大小存储到缓冲区中。当缓冲区中的总大小达到某个给定的阈值 xx 时,会发生溢出:此时记录下一份胶囊,并将缓冲区清空为零。

共有 qq 个独立的查询,每个查询由三元组 (l,r,x)(l,r,x) 描述。对于每个查询,xx 表示 Isla 的记忆容量。然后 Isla 会依次收集第 llrr 个记忆碎片。任何时刻,当她当前持有的碎片的总大小不少于 xx 时,她会完全清空自己的记忆(不留下任何碎片)。你需要判断 Isla 清空记忆的次数,以及她最终持有的碎片大小之和。

输入格式

每个测试包含多组测试数据。第一行包含测试组数 tt1t10001 \le t \le 1000)。接下来是每组测试数据的描述。

每组测试数据的第一行包含两个整数 nnqq1n,q150,0001 \le n, q \le 150{,}000)——数组 aa 的长度和查询数量。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n1ai1091 \le a_i \le 10^9)——碎片的大小。保证 a1a2ana_1 \ge a_2 \ge \cdots \ge a_n

接下来 qq 行,每行包含三个整数 l,r,xl, r, x1lrn1 \le l \le r \le n1x1091 \le x \le 10^9),表示一个查询。

保证所有测试数据中 nn 的总和不超过 150,000150{,}000

保证所有测试数据中 qq 的总和不超过 150,000150{,}000

输出格式

对于每组测试数据中的每个查询,输出两整数——Isla 清空记忆的次数,以及她最终持有的碎片大小之和。

输入输出样例

  • 输入#1

    3
    5 4
    7 5 5 2 1
    1 3 10
    2 5 6
    1 5 7
    3 5 4
    6 5
    6 6 5 3 2 2
    1 6 2
    1 6 7
    2 6 7
    2 5 4
    2 5 3
    11 7
    938412006 792864920 746880066 729862150 704473377 550436315 381392172 326088331 316506801 301443698 190862681
    1 3 417253102
    9 11 857592497
    1 11 344359921
    1 7 408760015
    8 8 544749974
    7 10 361090133
    3 11 888178376

    输出#1

    1 5
    1 3
    2 3
    1 3
    6 0
    2 4
    2 0
    3 0
    3 2
    3 0
    0 808813180
    9 0
    6 381392172
    0 326088331
    2 301443698
    3 492306379

说明/提示

cnt\texttt{cnt} 表示 Isla 清空记忆的次数,sum\texttt{sum} 表示她当前持有碎片的总大小。

在第一个测试样例的第一个查询 (l,r,x)=(1,3,10)(l, r, x) = (1, 3, 10)

  • sum=0\texttt{sum}=0 开始;
  • 加上 a1=7sum=7a_1=7 \Rightarrow \texttt{sum}=7(仍小于 1010);
  • 加上 a2=5sum=1210sum0a_2=5 \Rightarrow \texttt{sum}=12 \ge 10 \Rightarrow \texttt{sum} \gets 0cnt1\texttt{cnt} \gets 1
  • 加上 a3=5sum=5a_3=5 \Rightarrow \texttt{sum}=5

因此,输出 cnt=1\texttt{cnt}=1sum=5\texttt{sum}=5

在第二个测试样例的第五个查询 (l,r,x)=(2,5,3)(l, r, x) = (2, 5, 3)

  • sum=0\texttt{sum}=0 开始;
  • 加上 a2=6sum=63sum0a_2=6 \Rightarrow \texttt{sum}=6 \ge 3 \Rightarrow \texttt{sum} \gets 0cnt1\texttt{cnt} \gets 1
  • 加上 a3=5sum=53sum0a_3=5 \Rightarrow \texttt{sum}=5 \ge 3 \Rightarrow \texttt{sum} \gets 0cnt2\texttt{cnt} \gets 2
  • 加上 a4=3sum=33sum0a_4=3 \Rightarrow \texttt{sum}=3 \ge 3 \Rightarrow \texttt{sum} \gets 0cnt3\texttt{cnt} \gets 3
  • 加上 a5=2sum=2a_5=2 \Rightarrow \texttt{sum}=2(仍小于 33);

因此,输出 cnt=3\texttt{cnt}=3sum=2\texttt{sum}=2

首页