题目描述
Bessie 有一个特别的函数 f(x),接收一个 [1,N] 内的整数作为输入,并返回一个 [1,N] 内的整数(1≤N≤2⋅105)。她的函数 f(x) 由 N 个整数 a1…aN 定义,其中 f(x)=ax(1≤ai≤N)。
Bessie 希望这个函数是幂等的。换句话说,它应当对于所有整数 x∈[1,N] 满足 f(f(x))=f(x)。
Bessie 可以以代价 ci 将 ai 的值修改为 [1,N] 内的任意整数(1≤ci≤109)。求 Bessie 使 f(x) 变为幂等所需要的最小总代价。
输入格式
输入的第一行包含 N。
第二行包含 N 个空格分隔的整数 a1,a2,…,aN。
第三行包含 N 个空格分隔的整数 c1,c2,…,cN。
输出格式
输出 Bessie 使 f(x) 变为幂等所需要的最小总代价。
提示
样例 1 解释:
我们可以修改 a1=4,a4=4,a5=4。由于所有 ci 均等于 1,所以总代价等于 3,即修改的数量。可以证明,不存在仅进行 2 次或更少修改的解。
样例 2 解释:
我们修改 a3=3 以及 a4=4。总代价为 2+5=7。
- 测试点 3: N≤20。
- 测试点 4∼9: ai≥i。
- 测试点 10∼15: 所有 ai 各不相同。
- 测试点 16∼21: 没有额外限制。
除此之外,在后三个子任务中,前一半的测试点将满足对于所有 i 有 ci=1。