牛牛的考试
题号:NC247580
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

最近正值期末考试,牛牛看了看自己的考试安排,还有 n 门课程都需要预习,每个课程有对应的预习时长,并且这些课程之间一共存在 n-1 对先后关系,即只有预习完了 a 课程才能预习 b 课程。(第 1 个课程是最难的,需要预习完其他所有课程才能预习。)但是聪明的牛牛可以选择双开学习,手机和电脑在同一时间预习不同的课程,也可以选择单开,某个时间只预习一个课程。每个课程预习后,牛牛就会不间断的继续预习下一个能预习的课程。问牛牛最短多久能预习完所有课程?
牛牛在预习某个课程时,不要求一口气预习完该课程,例如某个课程需要花费 5 分钟,牛牛可以选择先预习 2 分钟,然后去预习别的课程,再回来预习剩下的 3 分钟。

输入描述:

第一行输入一个正整数  ,表示牛牛需要预习的课程数量。这些课程的编号为 
第二行输入 n 个正整数 a_1,a_2,...a_n ,分别代表第 i 个课程需要花费 分钟预习完。
第三行输入 n-1 个正整数 ,代表预习完第 个课程才能预习第 个课程。

输出描述:

输出一行一个整数,代表牛牛预习完这 n 个课程最少需要多少分钟。
示例1

输入

复制
9
3 3 2 3 4 5 3 6 3
1 1 2 2 2 3 3 7

输出

复制
18

说明

样例里的课程间先后关系如图所示,只有预习完了 4,5,6 三门课程才能预习 2 号课程。