Problem J: wise 's jyl

Problem J: wise 's jyl

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 108  Solved: 68
[Submit] [Status] [Web Board] [Creator:]

Description

众所周知,jyl学长作为地区首富,在他的公司里有很多工人,每个工人都会负责一个工作,但是因为当时大龙学长没有详细的安排,每个人做的工作可能是重复的,大龙学长现在有k份工作,每个工作至少需要有一个人来做,如果有很多人做相同的工作,大龙学长就需要劝说他们去做另外一个工作,劝说一个工人去做另外一个工作需要花b[i]的金币,虽然jyl学长很富有,但是为了勤俭持家,他还是非常省吃俭用的,所以他现在考虑要花最少的钱,来保证这k份工作至少有一个人做。 你能帮他算出他最少需要花多少钱吗?

Input

多组case , 保证每个文本中case不超过10组,并且每个文本的测试数据n之和不超过2e5

每组数据第一行输入n,k 代表工人的数量和工作的数量(1 <= k <= n <= 100000)

接下来一行输入n个整数a[i],代表第i个工人正在做工作a[i] (1 <= a[i] <= k)

最后一行输入n个整数b[i],代表劝说第i个工人改换另外的工作需要花b[i]个金币 (1 <= b[i] <= 1000000000)

Output

输出一行:大龙学长最少需要花多少金币才能保证每份工作都有人做

Sample Input Copy

8 7
1 1 3 1 5 3 7 1
5 7 4 8 1 3 5 2
3 3
1 2 3
3 5 9

Sample Output Copy

10
0