#14066. 粮食囤积

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
难度:未设置 题目类型:传统 评测方式:文本比较
上传者: Turing001

题目描述

你是一家粮食贸易公司的经理,可以预知未来 T 天里 N 种粮食的每日价格(单位:元/吨)。你的仓库容量无限,初始时有 M 元现金。

在每一天,你可以:

  • 买入:以当天价格无限量买入任意粮食(整数吨),花费 数量 × 当天价格;
  • 卖出:以当天价格无限量卖出任意粮食(整数吨),获得 数量 × 当天价格;
  • 也可以不操作。

仓储成本:如果某种粮食在你手中过夜(即从今天持有到明天),则每吨需要支付 1 元 的仓储费。这笔费用在卖出该批粮食时一次性扣除,相当于每吨粮食的持有成本为 持有天数 × 1 元。

你的目标是在第 T 天结束时,将所有持仓全部卖出,并最大化最终现金。

输入格式

第一行包含三个整数 T, N, M ,分别表示总天数、粮食种类数和初始资金。
接下来 T 行,每行 N 个整数 p_{i,1}, p_{i,2}, \dots, p_{i,N} ,表示第 i 天第 j 种粮食的价格。

输出格式

输出一行一个整数,表示第 T 天结束后(清仓后)的最大现金数。

样例

样例输入

3 1 10
1 
3 
2

样例输出

20

样例解释:

  • 第1天以1元/吨买入10吨,花费10元,现金0;
  • 持有1天,仓储费为10×1=10元;
  • 第2天以3元/吨卖出,收入30元,扣除仓储费10元,现金变为20元;
  • 第3天价格2元,若第2天买入第3天卖出,净收益为 (2-3-1) = -2 <0,不交易;
  • 最终现金20元。

样例输入

2 2 12 
3 2 
7 5 

样例输出

24

样例解释:

若第1种粮食(单价是3元)买入2吨,第2种粮食(单价是2元)买入3吨,即12=3×2+2×3.

第2天卖出:则第1种粮食获得的现金为:7×2-2=14-2=12。(减2是支付仓储费),第2种粮食获得的现金为:5×3-3=15-3=12.

最终现金是24元。

数据范围与提示

  • 对于 100\% 的数据, 1 \le T \le 100 , 1 \le N \le 100 , 1 \le M \le 10^4 , 1 \le p_{i,j} \le 10^4 。