#36. 闯关游戏
闯关游戏
闯关游戏
你来到了一个闯关游戏。这个游戏总共有 n 关,每关都有 m 个通道,你需要选择一个通道并通往后续关卡。其中,第 j 个通道可以让你前进 a_j 关,也就是说,如果你现在在第 i 关,那么选择第 j 个通道后,你将直接来到第 i+a_j 关(特别地,如果 i+a_j ≥ n,那么你就通关了)。此外,当你顺利离开第 i 关时,你还将获得 b_i 分。 游戏开始时,你在第 0 关。请问,你通关时最多能获得多少总分?
输入格式
第一行两个整数 n、m(2≤n≤1000,1≤m≤10),分别表示关卡数量和每关的通道数量。 接下来一行 m 个用单个空格隔开的整数 a_1..a_m(1≤a_j≤n),表示每个通道能前进的关数。 接下来一行 n 个用单个空格隔开的整数 b_0..b_{n-1}(-10^4≤b_i≤10^4),表示离开每一关获得的分数。
输出格式
一行一个整数,表示你通关时最多能够获得的分数。
样例
输入样例 1
6 2
2 3
1 0 30 100 30 30
输出样例 1
131
输入样例 2
6 2
2 3
1 0 30 100 30 -1
输出样例 2
100
数据范围
2 ≤ n ≤ 1000,1 ≤ m ≤ 10,1 ≤ a_j ≤ n,-10^4 ≤ b_i ≤ 10^4。(保证存在通关的路径)