Problem6400--走走跳跳

6400: 走走跳跳

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

有 $n$ 个点排成一排,第 $i$ 个点都有一个分数 $a_i$,小爱从 $1$ 号点出发,最终要走到 $n$ 号点。小爱从第 $i$ 号出发时,有两种选择:
  • 可以选择走到 $i+1$ 号点;
  • 也可以选择跳到 $t_i$ 号点。
小爱的得分就是一路上路过的所有点上分数之和,请问应该如何安排行动,才能使获得的分数之和达到最高?

Input

第一行:正整数 $n$
第二行:$n$ 个整数,表示 $a_1,a_2,\cdots,a_n$;
第三行:$n-1$个整数,表示 $t_1,t_2,\cdots,t_{n-1}$

Output

单个整数:表示可能拿到的最高分数

Constraints

对于 $30\%$ 的数据,保证 $1\leq n\leq 50$;
对于 $60\%$ 的数据,保证 $1\leq n\leq 5000$;
对于 $100\%$ 的数据,保证 $1\leq n\leq 100,000$;
$-10^5 \leq w_i \leq 10^5$;
$i \lt t_i \leq n$;

Sample 1 Input

3
4 -2 6
3 3

Sample 1 Output

10

Source/Category