#1878. 流水线

流水线

题目描述

在计算机组成原理这门课中,小明的老师布置了实现CPU\red{CPU}流水线的作业。小明打算设计出一个效率最 高的流水线。简单来说,流水线就是将CPU\red{CPU}分成若干个任务模块,而一个模块又可以继续划分成更小的模 块,小模块可以划分成更小的小小模块......根据常识我们知道把一个任务划分后,每一个部分的代价会变少, 但是可能会产生额外的代价。所以小明希望你帮助他解决这个问题。

我们可以用一棵以1\red{1}为根的有根树来描述模块之间的关系,每个节点是一个模块,每个节点的点权对应 着该模块的时间代价。每一个非叶子节点可以划分成该节点的儿子节点对应的模块。

每个模块都有一定的时间代价,而流水线最后的效率我们可以用划分的模块数乘上模块中时间代价最大 的一个来表示,时间代价越小,流水线的效率越高。也就是说,假如小明最后把CPU\red{CPU}划分为了m\red{m}个模块,每 个模块的代价为w1,w2,...,wm\red{w_1,w_2,... ,w_m,}则总代价为mmax(w1,w2,...,wm)\red{m·max(w_1, w_2,... ,w_m)}。另外,我们认为根节点对应的模块不往下划分模块也是一种合法的方案 。

请你帮小明找到效率最高的流水线设计方案吧

输入格式

第一行一个正整数n\red{n,}表示模块对应有根树的节点个数。

第二行n\red{n}个整数,表示n\red{n}个模块的时间代价wi\red{w_i}

第三行n1\red{n-1}个数fi(2\red{f_i(2≤}i\red{i≤}n)\red{n),}表示节点2,...,n\red{2,...,n}在有根树中的父节点。保证给出的是一棵以 1\red{1}为根的树。

输出格式

一个整数T,\red{T,}表示最小的时间代价。

样例

输入样例

5
10 7 3 3 2
1 1 2 2

输出样例

9

提示

对于所有测试点,1n105\red{1 ≤ n ≤ 10^5}0wi109\red{0 ≤ w_i ≤ 10^9}wiwfi\red{w_i ≤ w_{f_i}}