基金管理 Fund Management

题意翻译

摘自《算法竞赛入门经典(第2版)》 你有 $c(0.01 \leq c \leq 10^8)$ 美元现金,但没有股票。给你 $m(1 \leq m \leq 100)$ 天时间和 $n(1 \leq m \leq 8)$ 支股票供你买卖,要求最后一天结束后不持有任何股票,且剩余的钱最多。买股票不能赊账,只能用现金买。 已知每支股票每天的价格($0.01 \sim 999.99$。单位是美元/股)与参数 $s_i$ 和 $k_i$,表示一手股票是 $s_i(1 \leq s_i \leq 10^6)$ 股,且每天持有的手数不能超过 $k_i(1 \leq k_i \leq 100)$,其中 $k$ 为每天持有的总手数上限。每天要么不操作,要么选一支股票,买货卖他的一手股票。$c$ 和股价均最多包含两位小数(即美分)。最优解保证不超过 $10^9$。要求输出每一天的决策(`HOLD` 表示不变,`SELL` 表示卖,`BUY` 表示卖)。 翻译提供者:lyonlu

题目描述

[problemUrl]: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=447&page=show_problem&problem=4158 [PDF](https://uva.onlinejudge.org/external/14/p1412.pdf)

输入输出格式

输入格式


多组测试数据,每组第一行 4 个数 $c,m,n,k$。 接下来有 $2n$ 行,对于每支股票有两行输入,第一行给出股票名(1~5个英文大写字母)和 $s_i$ 以及 $k_i$。第二行 $m$ 个数,第 $i$ 个数代表第 $i$ 天一股的价格。

输出格式


对于每组数据,输出 $m+1$ 行,第一行一个数表示最终剩余的钱,第 $i+1$ 行输出第 $i$ 天的决策。

输入输出样例

暂无测试点