#G723122. [GESP202312 七级 C++] 27. 纸牌游戏

提交1 通过1
通过率100%
时间限制1000ms
内存限制512MiB

题目描述

题目描述

你和小杨在玩一个纸牌游戏。

你和小杨各有 33 张牌,分别是 00、11、22。你们要进行 NN 轮游戏,每轮游戏双方都要出一张牌,并按 11 战胜 00,22 战胜 11,00 战胜 22 的规则决出胜负。第 ii 轮的胜者可以获得 2×ai2 \times a_i 分,败者不得分,如果双方出牌相同,则算平局,二人都可获得 aia_i 分 (i=1,2,⋯ ,N)(i=1,2,\cdots,N)。

玩了一会后,你们觉得这样太过于单调,于是双方给自己制定了不同的新规则。小杨会在整局游戏开始前确定自己全部 nn 轮的出牌,并将他的全部计划告诉你;而你从第 22 轮开始,要么继续出上一轮出的牌,要么记一次“换牌”。游戏结束时,你换了 tt 次牌,就要额外扣 b1+⋯+btb_1+\cdots+b_t 分。

请计算出你最多能获得多少分。

输入格式

第一行一个整数 NN,表示游戏轮数。

第二行 NN 个用单个空格隔开的非负整数 a1,⋯ ,aNa_1,\cdots,a_N,意义见题目描述。

第三行 N−1N-1 个用单个空格隔开的非负整数 b1,⋯ ,bN−1b_1,\cdots,b_{N-1},表示换牌的罚分,具体含义见题目描述。由于游戏进行 NN 轮,所以你至多可以换 N−1N-1 次牌。

第四行 NN 个用单个空格隔开的整数 c1,⋯ ,cNc_1,\cdots,c_N,依次表示小杨从第 11 轮至第 NN 轮出的牌。保证 ci∈{0,1,2}c_i\in\{0,1,2\}。

输出格式

一行一个整数,表示你最多获得的分数。

4
1 2 10 100
1 100 1
1 1 2 0
219
6
3 7 2 8 9 4
1 3 9 27 81
0 1 2 1 2 0
56