#39. 纸牌游戏
纸牌游戏
纸牌游戏
你和小杨在玩一个纸牌游戏。你和小杨各有 3 张牌,分别是 0、1、2。你们要进行 n 轮游戏,每轮游戏双方都要出一张牌,并按 1 战胜 0,2 战胜 1,0 战胜 2 的规则决出胜负。第 i 轮的胜者可以获得 a_i 分,败者不得分,如果双方出牌相同,则算平局,二人都可获得 a_i 分。 玩了一会后,你们觉得这样太过于单调,于是双方给自己制定了不同的新规则。小杨会在整局游戏开始前确定自己全部 n 轮的出牌,并将他的全部计划告诉你;而你从第 2 轮开始,要么继续出上一轮出的牌,要么记一次 "换牌"。游戏结束时,你换了 j 次牌,就要额外扣 b_j 分。 请计算出你最多能获得多少分。
输入格式
第一行一个整数 n(1≤n≤500),表示游戏轮数。 第二行 n 个用单个空格隔开的非负整数 a_1..a_n(0≤a_i≤100),表示每轮获胜/平局获得的分数。 第三行 n-1 个用单个空格隔开的非负整数 b_1..b_{n-1}(0≤b_i≤100),表示换牌的罚分。 第四行 n 个用单个空格隔开的整数 c_1..c_n(0≤c_i≤2),依次表示小杨从第 1 轮至第 n 轮出的牌。
输出格式
一行一个整数,表示你最多获得的分数。
样例
输入样例 1
4
1 2 10 100
1 100 1
1 1 2 0
输出样例 1
219
输入样例 2
6
3 7 2 8 9 4
1 3 9 27 81
0 1 2 1 2 0
输出样例 2
56
数据范围
1 ≤ n ≤ 500,0 ≤ a_i ≤ 100,0 ≤ b_i ≤ 100,0 ≤ c_i ≤ 2。