2690 问题 E: 蓝桥杯2022年第十三届省赛真题-重新排序

时间限制: 1s 内存限制: 256MB 提交: 2517 解决: 522
题目描述

给定一个数组 A 和一些查询 Li , Ri,求数组中第 Li 至第 Ri 个元素之和。

小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?

输入

输入第一行包含一个整数 n。

第二行包含 n 个整数 A1, A2, · · · , An,相邻两个整数之间用一个空格分隔。

第三行包含一个整数 m 表示查询的数目。

接下来 m 行,每行包含两个整数 Li、Ri ,相邻两个整数之间用一个空格分隔。

输出
输出一行包含一个整数表示答案。
样例输入
5
1 2 3 4 5
2
1 3
2 5
样例输出
4
提示

原来的和为 6 + 14 = 20,重新排列为 (1, 4, 5, 2, 3) 后和为 10 + 14 = 24,增加了 4。

对于 30% 的评测用例,n, m ≤ 50 ;

对于 50% 的评测用例,n, m ≤ 500 ;

对于 70% 的评测用例,n, m ≤ 5000 ;

对于所有评测用例,1 ≤ n, m ≤ 105,1 ≤ Ai ≤ 106,1 ≤ Li ≤ Ri ≤ 106

比赛公告

第十三届蓝桥杯大赛软件赛省赛 Java 研究生组
C题

质因数个数

D题

数位排序

E题

蜂巢

F题

爬树的甲壳虫

G题

重新排序

H题

技能升级

I题

最优清零方案

J题

推导部分和

注意事项:

1. 不要使用 package 语句。

2. 选手代码的主类名必须为:Main,否则会被判为无效代码。

3. 如果程序中引用了类库,在提交时必须将 import 语句与程序的其他部分同时提交。

4. 只允许使用 Java 自带的类库。

5. 提交时,注意选择使用Java语言。

本比赛结束依旧可以训练,见题集2022年第十三届蓝桥杯大赛软件类省赛Java研究生组真题