#aBC360C. [ABC360C] Move It

[ABC360C] Move It

AT_abc360_c [ABC360C] Move It

题目描述

NN 个编号为 11NN 的箱子,以及 NN 个编号为 11NN 的行李。行李 ii1iN1 \leq i \leq N)目前在编号为 AiA_i 的箱子中,重量为 WiW_i

你可以选择一个行李,并将其移动到其他任意一个箱子中,这个操作可以重复进行 00 次或多次。每次移动行李时,若被移动行李的重量为 ww,则需要花费 ww 的代价。

请你求出,使得每个箱子里正好有一个行李所需的总代价的最小值。

输入格式

输入以如下格式从标准输入读入:

NN A1A_1 A2A_2 \ldots ANA_N W1W_1 W2W_2 \ldots WNW_N

输出格式

输出使得每个箱子里正好有一个行李所需的总代价的最小值。

输入输出样例 #1

输入 #1

5
2 2 3 3 5
33 40 2 12 16

输出 #1

35

输入输出样例 #2

输入 #2

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

输出 #2

17254

说明/提示

限制条件

  • 1N1051 \leq N \leq 10^{5}
  • 1AiN1 \leq A_i \leq N1iN1 \leq i \leq N
  • 1Wi1041 \leq W_i \leq 10^{4}1iN1 \leq i \leq N
  • 输入均为整数

样例解释 1

通过以下两次行李移动,可以使每个箱子里正好有一个行李:

  • 将行李 11 从箱子 22 移动到箱子 11,此时花费 3333
  • 将行李 33 从箱子 33 移动到箱子 44,此时花费 22

这两次移动的总代价为 3535。无法通过低于 3535 的总代价使每个箱子里正好有一个行李,因此输出 3535

由 ChatGPT 4.1 翻译