好师傅
时间限制:1秒 内存限制:256M
【题目描述】
Ms马被所有学生认为是食堂心底最善良的师傅,她总时让学生在食堂尽可能少花钱。
她是如何做到这一点的呢?策略其实很简单。在食堂里可以买到各种饭菜,其价格也是众所周知的。食堂每天都会提供一份优惠套餐。一份套餐包括四份餐品(通常是汤、主菜、配菜和甜点),但它的价格p小于或等于其组成部分的价格总和。当这Ms马注意到你拿了套餐中的部分餐品,且按照一整个套餐的费用会花更少的钱,那么她就一定会按整个套餐的费用来给你结算,而你会满载而归,口袋里剩下比原来更多的钱。
你拿着托盘站在窗口前,想知道你要付多少钱。写一个方案来确定它吧!
请注意:Ms马可以用多个套餐向你收费,这样价格会更便宜。
【输入格式】
输入共六行。
第一行输入一个整数k,表示食堂今天供应的餐品总数,菜品编号依次为1..k。
第二行输入k个整数,第i个整数ci表示编号为i的餐品的价格。
第三行输入一个整数p,表示套餐的价格。
第四行输入4个整数a1,a2,a3,a4,分别表示套餐里面包含的四种餐品的编号。保证ai 互不相同。
第五行输入一个整数t,表示你点的餐品的个数。
第六行输入t个整数,第i个整数si表示你点的餐品的编号。不保证si互不相同。
【输出格式】
输出仅一行,一个整数,表示你在食堂的花费。
【输入输出样例1】
Input
7
10 6 8 9 4 5 3
14
1 2 3 4
5
1 3 4 6 7
Output
22
【样例说明】
你点了 1,3,4 这三个在套餐中的餐品,这三个餐品单点的总价为10+8+9=27,大于套餐的价格14,因此收银的女士会将这些餐品按照14元收费。除此之外的6,7两个餐品不在套餐中,因此单独收费。故总花费为14+5+3=22。
【输入输出样例2】
Input
6
12 5 7 8 9 3
14
4 3 1 2
5
1 2 1 6 6
Output
32
【样例说明】
你点了 1,2 这两个在套餐中的餐品,这两个餐品单点的总价为 12+4=16,大于套餐的价格 14,因此收银的女士会将这些餐品按照 14 元收费。此外还剩下一个 1 号餐品和两个 6 号餐品。由于一个 1 号餐品的价格是 12,小于套餐的 14,而另外两个 6 号餐品又不在套餐里出现,因此剩下的一个 1 号餐品和两个 6 号餐品都只能单独收费。因此总花费为 14+12+3*2=32。
【测试点性质】
对于 100% 的数据,1≤k,t≤20,1≤ci≤ 50,1≤p<1000,1≤pi,si≤k。
【来源】
Mr.he