重新排序
问题描述
给定一个数组 A 和一些查询 ,L i
,R i
, 求数组中第 L i
至第 R i
个元素之和。
小蓝觉得这个问题很无聊, 于是他想重新排列一下数组, 使得最终每个查 询结果的和尽可能地大。小蓝想知道相比原数组, 所有查询结果的总和最多可 以增加多少?
输入
输入第一行包含一个整数 n 。第二行包含 n 个整数 1,2,⋯,A 1 ,A 2 ,⋯,A n , 相邻两个整数之间用一个空格分隔。
第三行包含一个整数 m 表示查询的数目。接下来 m 行, 每行包含两个整数、L i
、R i
, 相邻两个整数之间用一个空格分隔。
思路
利用到差分来计算数组间的重叠的关系,暴力只有60%的通过
60%代码
n = int(input())
lis = list(map(int,input().split()))
x = int(input())
dic = [0] * n
num1 = 0
for i in range(x):
a,b = map