问题 7203 --最小区间权重和

7203: 最小区间权重和★★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 45  解决: 11
[提交][状态][命题人:]

题目描述

【问题描述】

现给我们n个区间[l1r1] [l2, r2][ln, rn],对于所有的区间都满足区间的左边界严格小于右边界,且区间的所有端点都是不同的。即对于任意第i个区间,都满足: li<ri,并且任意两个区间的端点都是不同的。

同时,给我们n个区间单位长度的权重c1,c2,.,cn,第i个区间每单位长度的权重为ci。因此,第i个区间的权值为ci *(ri−li),即第i个区间的权值为该区间的单位长度的权重ci乘以该区间的长度ri−li

但是作为一名小学生,你不太喜欢太大的权值。所以,你希望让所有区间的权值之和尽可能小。为了实现上述目标,你可以执行以下三个操作:

1)你可以按任意顺序重新排列数组l中的元素;

2)你可以按任意顺序重新排列数组r中的元素;

3)你可以按任意顺序重新排列数组c中的元素。

但是,在执行上述所有操作之后,你必须确保每个区间仍然有效(即,对于每个ili<ri必须成立)。

请问,在执行上述操作之后,所有n个区间的权值之和的最小值是多少?

输入

第一行为一个整数n1<=n<=100000: 为区间的数目。

第二行为n个整数l1,l2,……,ln1<=li<=200000: n个区间的左端点。

第三行为n个整数r1,r2,……,rn1<=ri<=200000: n个区间的右端点。

测试数据确保,{l1,l2,……,lnr1,r2,……,rn}中的任意2个整数都是不同的。

第四行为n个整数c1,c2,……,cn1<=ci<=1e7: n个区间的单位权值。

输出

一行一个整数,为所有区间的权值之和的最小值。

样例输入
Copy
2
8 3
12 23
100 100
样例输出
Copy
2400

提示

【样例解释】

对于第一个测试样例,可以重排为:

l=[8,3];

r=[23,12];

c=[100,100]

此时,两个区间的权值之和为:100*23-8+ 100*12-3=2400,这已经是权值之和的最小值了,即无论我们如何重排上述三个数组l,rc,计算得到的区间权值之和都不可能比2400更小。

 

【数据范围约定】

20%的数据,n10li, ri ≤100, ci ≤1000

50%的数据,n100, li, ri ≤1000, ci ≤1000

70%的数据,n10000, li, ri ≤20000, ci ≤2e5

100%的数据,n100000, li, ri ≤200000, ci ≤1e7

来源

[提交][状态]