CFCF2173F.Isla's Memory Thresholds
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
我希望有一天,你能与那个你珍惜的人重逢。
—— Plastic Memories
在 Plastic Memories 的世界中,Isla 正在收集 n 个记忆碎片。第 i 个碎片的大小为 ai,且这些大小是非增序排列的,即 a1≥a2≥⋯≥an。
在回收过程中,Isla 会处理一个范围内的碎片,并将它们的大小存储到缓冲区中。当缓冲区中的总大小达到某个给定的阈值 x 时,会发生溢出:此时记录下一份胶囊,并将缓冲区清空为零。
共有 q 个独立的查询,每个查询由三元组 (l,r,x) 描述。对于每个查询,x 表示 Isla 的记忆容量。然后 Isla 会依次收集第 l 到 r 个记忆碎片。任何时刻,当她当前持有的碎片的总大小不少于 x 时,她会完全清空自己的记忆(不留下任何碎片)。你需要判断 Isla 清空记忆的次数,以及她最终持有的碎片大小之和。
输入格式
每个测试包含多组测试数据。第一行包含测试组数 t(1≤t≤1000)。接下来是每组测试数据的描述。
每组测试数据的第一行包含两个整数 n 和 q(1≤n,q≤150,000)——数组 a 的长度和查询数量。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109)——碎片的大小。保证 a1≥a2≥⋯≥an。
接下来 q 行,每行包含三个整数 l,r,x(1≤l≤r≤n,1≤x≤109),表示一个查询。
保证所有测试数据中 n 的总和不超过 150,000。
保证所有测试数据中 q 的总和不超过 150,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 表示 Isla 清空记忆的次数,sum 表示她当前持有碎片的总大小。
在第一个测试样例的第一个查询 (l,r,x)=(1,3,10):
- 从 sum=0 开始;
- 加上 a1=7⇒sum=7(仍小于 10);
- 加上 a2=5⇒sum=12≥10⇒sum←0,cnt←1;
- 加上 a3=5⇒sum=5。
因此,输出 cnt=1,sum=5。
在第二个测试样例的第五个查询 (l,r,x)=(2,5,3):
- 从 sum=0 开始;
- 加上 a2=6⇒sum=6≥3⇒sum←0,cnt←1;
- 加上 a3=5⇒sum=5≥3⇒sum←0,cnt←2;
- 加上 a4=3⇒sum=3≥3⇒sum←0,cnt←3;
- 加上 a5=2⇒sum=2(仍小于 3);
因此,输出 cnt=3,sum=2。