CF1027D.Mouse Hunt

传统题 时间 2000 ms 内存 256 MiB 9 尝试 28 已通过 9 标签

Mouse Hunt

题目描述

有 nn 个房间,编号为 11 到 nn,一只老鼠会在房间之间不断移动。若老鼠在第 tt 秒位于房间 ii,则第 t+1t+1 秒它会移动到房间 aia_i;当 ai=ia_i=i 时,它会一直留在房间 ii。

你可以在一些房间中设置捕鼠器。在房间 ii 设置一个捕鼠器的代价为 cic_i。老鼠只要到达设有捕鼠器的房间,就会被捕获。

初始时老鼠可能位于任意一个房间。求保证无论老鼠初始在哪个房间,最终都一定会被捕获所需的最小总代价。

输入格式

第一行输入一个整数 nn(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5),表示房间数量。

第二行输入 nn 个整数 c1,c2,…,cnc_1,c_2,\dots,c_n(1≤ci≤1041 \le c_i \le 10^4),其中 cic_i 表示在房间 ii 设置捕鼠器的代价。

第三行输入 nn 个整数 a1,a2,…,ana_1,a_2,\dots,a_n(1≤ai≤n1 \le a_i \le n),其中 aia_i 表示老鼠离开房间 ii 后到达的房间。

输出格式

输出一个整数,表示最小总代价。

样例

样例 1

输入:

5
1 2 3 2 10
1 3 4 3 3

输出:

3

样例 2

输入:

4
1 10 2 10
2 4 2 2

输出:

10

样例 3

输入:

7
1 1 1 1 1 1 1
2 2 2 3 6 7 6

输出:

2

在线编程 IDE

建议全屏模式获得最佳体验