#4266. 移动物品(MoveIt)

移动物品(MoveIt)

题目描述

小高有NN个箱子和NN个物品,编号从11NN。第ii个物品目前在第AiA_i个箱子中,重量为WiW_i。小高可以多次执行以下操作:选择一个物品并将其移动到另一个箱子中。如果移动的物品重量为ww,则该操作的成本为ww

请计算使每个箱子恰好包含一个物品所需的最小总成本。

输入格式

输入按以下格式从标准输入给出:

NN

A1A_1 A2A_2 \cdots ANA_N

W1W_1 W2W_2 \cdots WNW_N

输出格式

输出使每个箱子恰好包含一个物品所需的最小总成本。

样例

5
2 2 3 3 5
33 40 2 12 16
35
12
3 6 7 4 12 4 8 11 11 1 8 11
3925 9785 9752 3587 4013 1117 3937 7045 6437 6208 3391 6309
17254

样例1解释

通过以下两次移动,可以使每个箱子恰好包含一个物品:

  1. 将物品1从箱子2移动到箱子1。成本为33。

  2. 将物品3从箱子3移动到箱子4。成本为2。

这两次移动的总成本为35。不可能以小于35的成本使每个箱子恰好包含一个物品,所以输出35。

数据范围

  • 1N1051 ≤ N ≤ 10^5
  • 1AiN(1iN)1 ≤ A_i ≤ N (1 ≤ i ≤ N)
  • 1Wi104(1iN)1 ≤ W_i ≤ 10^4 (1 ≤ i ≤ N)
  • 所有输入值都是整数。

来源

  • AtCoder ABC360C