1658: 最大收益
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:5
Solved:4
Description
工厂有 n 个工作和 m 个工人。工厂的业务给出3组数据源:difficulty, profit 和 worker,其中:
(1)difficulty[i] 表示第 i 个工作的难度
(2)profit[i] 表示第 i 个工作的收益
(3)worker[i] 是第 i 个工人的能力,即该工人只能完成难度小于等于 worker[i] 的工作。
提示:每个工人最多只能安排一个工作,但是一个工作可以完成多次 。
例如:如果 3 个工人都尝试完成一份报酬为 2 的同样工作,那么总收益为6 。如果一个工人不能完成任何工作,他的收益为0 。现在,请你编程计算,在把工人分配到工作岗位后,工厂所能获得的最大收益。
(1)difficulty[i] 表示第 i 个工作的难度
(2)profit[i] 表示第 i 个工作的收益
(3)worker[i] 是第 i 个工人的能力,即该工人只能完成难度小于等于 worker[i] 的工作。
提示:每个工人最多只能安排一个工作,但是一个工作可以完成多次 。
例如:如果 3 个工人都尝试完成一份报酬为 2 的同样工作,那么总收益为6 。如果一个工人不能完成任何工作,他的收益为0 。现在,请你编程计算,在把工人分配到工作岗位后,工厂所能获得的最大收益。
Input
第1行,读入n和m。(1<=n,m<=10000)
第2行,读入n个工作的难度值difficulty[i] ,每个数据之间用空格分隔(1<=difficulty[i]<=100000 )
第3行,读入n个工作的收益值profit[i], 每个数据之间用空格分隔(1<=profit[i]<=100000 )
第4行,读入m个工人的能力值worker[i] ,每个数据之间用空格分隔 (1<=worker[i]<=100000)
Output
一行,输出最大的收益值。
Sample Input Copy
5 4
2 4 6 8 10
10 20 30 40 50
4 5 6 7
Sample Output Copy
100
HINT
【样例输入2】
3 3
85 47 57
24 66 99
40 25 25
【样例输出2】
0