问题 G: 无语羊农场

问题 G: 无语羊农场

时间限制: 1 Sec  内存限制: 128 MB
提交: 25  解决: 16
[状态] [讨论版] [提交] [命题人:]
题目描述

viovow是无语羊农场的主要经营人。在农场里,每天有许许多多的杂务要做,每一项杂务都需要一定的时间来完成它。比如:检修剪毛器,把绵羊赶到羊圈,修剪羊毛等等。为了维持无语羊农场的正常运行,需要尽早的完成各项杂务。

其中,有一些杂务必须要在另一件杂务完成之后才能进行,例如,你需要检修剪毛器之后才能开始剪毛工作。至少有一项杂务不要求有准备工作,这个可以最早着手完成的工作,标记为杂务 1。

viovow有需要完成的 n个杂务的清单,并且这份清单是有一定顺序的,杂务 k (k>1) 的准备工作只可能在杂务 1至 k−1 中,且每一项杂务最多有一项准备工作,若无准备工作,则准备工作为0

写一个程序依次读入每个杂务的工作说明。计算出所有杂务都被完成的最短时间。当然互相没有关系的杂务可以同时工作,并且,你可以假定 viovow 的农场有足够多的工人来同时完成任意多项任务。

输入

第1行:一个整数 n (3≤n≤10,000),必须完成的杂务的数目;

第2行:n个整数a1,a2,...an,ai代表第i项杂务的准备工作是ai(0≤ai≤n-1)

第3行: n个整数b1,b2,...bn,bi代表第i项杂务所需要的时间是bi(0<bi≤20)

输出
一个整数,表示完成所有杂务所需的最短时间。
样例输入 Copy
5
0 1 0 2 2
2 5 8 4 1
样例输出 Copy
11