#5134. Move It

0

Move It

Move It

题目描述

有 NN 个编号为 11 到 NN 的盒子和 NN 个编号为 11 到 NN 的物品。物品 ii (1≤i≤N)(1 \leq i \leq N) 在盒子 AiA_i 中,重量为 WiW_i。 你可以反复执行如下操作:选择一个物品并把它移动到另一个盒子,次数可以为零或多次。如果被移动的物品重量为 ww,则该次操作的代价为 ww。 求使每个盒子恰好包含一个物品所需的最小总代价。

输入格式

输入从标准输入按以下格式给出: NN A1A_1 A2A_2 …\ldots ANA_N W1W_1 W2W_2 …\ldots 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≤N≤1051 \leq N \leq 10^{5} 1≤Ai≤N1 \leq A_i \leq N (1≤i≤N)(1 \leq i \leq N) 1≤Wi≤1041 \leq W_i \leq 10^{4} (1≤i≤N)(1 \leq i \leq N) 所有输入值均为整数。通过如下两次移动,可以使每个盒子恰好包含一个物品:

将物品 11 从盒子 22 移到盒子 11。代价为 3333。 将物品 33 从盒子 33 移到盒子 44。代价为 22。

这两次移动的总代价为 3535。不可能以小于 3535 的代价使每个盒子恰好包含一个物品,因此输出 3535。

标签: AtCoder|abc360C

来源

AtCoder|abc360C