#U1718JS2. Rental Service

Rental Service

Farmer John 意识到他从牛奶生产中获得的收入不足以资助他的农场的发展,因此为了赚取一些额外的钱,他推出了一项奶牛出租服务,他称之为“USACOW”(发音为“Use-a-cow” ").Farmer John 有 N 头奶牛 (1≤N≤100,000),每头奶牛每天都能生产一定量的牛奶。FJ农场附近的M店(1≤M≤100,000)每家都提供以一定价格购买一定数量的牛奶。此外,Farmer John 的 R(1≤R≤100,000)个相邻的农民都对以特定价格租用一头奶牛感兴趣。

Farmer John 必须选择每头奶牛是挤奶还是租给附近的农民。帮助他找到他每天可以赚到的最大金额。

输入格式(文件rental.in):

输入的第一行包含 N、M 和 R。接下来的 N 行每行包含一个整数 ci​​​(1ci​​​1,000,000)c_i​​​(1≤c_i​​​≤1,000,000),表示 Farmer John 的第 i 头奶牛可以生产 ci​​​c_i​​​每天几加仑牛奶。接下来的 M 行每行包含两个整数 qiq_ipip_i​​​(1qi​​​,pi​​​1,000,0001≤q_i​​​,p_i​​​≤1,000,000),表示第 i 家商店愿意购买到 qi​​​q_i​​​ 加仑牛奶pi​​​p_i​​​美分每加仑。请记住,Farmer John 可以出售零到 qiq_i 之间的任何数量的牛奶到给定的商店。接下来的 R 行每行包含一个整数 ri​​​(1ri1,000,000)r_i​​​(1≤r_i≤1,000,000),表示 Farmer John 的一个邻居想以 rir_i 美分租一头牛每天。

输出格式(文件rental.out):

输出应该包含一行,其中包含 Farmer John 通过挤奶或出租每头奶牛每天可以获得的最大利润。请注意,输出可能太大而无法放入标准的 32 位整数,因此您可能需要使用更大的整数类型,例如 C/C++ 中的“long long”。

SAMPLE INPUT:

5 3 4
6
2
4
7
1
10 25
2 10
15 15
250
80
100
40

SAMPLE OUTPUT:

725

Farmer John 应该挤奶 #1 和 #4 奶牛,以生产 13 加仑牛奶。他应该完成 10 加仑的订单,赚取 250 美分,然后以每 15 美分的价格出售剩余的 3 加仑,总共获得 295 美分的牛奶利润。

然后,他应该以 250 美分、80 美分和 100 美分出租其他三头奶牛,从而多赚 430 美分。(他应该不出租 40 美分的租约。)这是每天总共 725 美分的利润。